mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-14 06:55:50 +02:00
Move overflow check up
This commit is contained in:
@@ -58,6 +58,10 @@ public:
|
||||
:m_ref_size(std::max(ref_size, detail::packer_max_buffer_size + 1)),
|
||||
m_chunk_size(chunk_size)
|
||||
{
|
||||
if((sizeof(chunk) + chunk_size) < chunk_size) {
|
||||
throw std::bad_alloc();
|
||||
}
|
||||
|
||||
size_t nfirst = (sizeof(iovec) < 72/2) ?
|
||||
72 / sizeof(iovec) : 8;
|
||||
|
||||
@@ -71,11 +75,6 @@ public:
|
||||
m_end = array + nfirst;
|
||||
m_array = array;
|
||||
|
||||
if((sizeof(chunk) + chunk_size) < chunk_size){
|
||||
::free(array);
|
||||
throw std::bad_alloc();
|
||||
}
|
||||
|
||||
chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + chunk_size));
|
||||
if(!c) {
|
||||
::free(array);
|
||||
|
Reference in New Issue
Block a user