Skip to content

Commit 46a00af

Browse files
committed
[REFACT] Define bufisize_t as size_t. Check max size before resizing
1 parent 2d29444 commit 46a00af

2 files changed

Lines changed: 3 additions & 1 deletion

File tree

parser/ByteBuffer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "ByteBuffer.h"
22
#include <iostream>
3+
#include <limits.h>
34

45
ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t v_padding)
56
: ByteBuffer()
@@ -49,6 +50,7 @@ ByteBuffer::ByteBuffer(AbstractByteBuffer *v_parent, offset_t v_offset, bufsize_
4950
BYTE* ByteBuffer::allocContent(bufsize_t v_size, bufsize_t v_padding)
5051
{
5152
if (!v_size) throw BufferException("Zero size requested");
53+
if (v_size >= BUFSIZE_MAX || v_size >= LLONG_MAX) throw BufferException("Too big size requested");
5254

5355
const bufsize_t allocSize = v_size + v_padding;
5456
const bufsize_t sizeDiff = (allocSize > this->contentSize) ? (allocSize - this->contentSize) : 0;

parser/include/bearparser/AbstractByteBuffer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#define MASK_TO_DWORD(val) ((val < MAX_DWORD) ? (val & MAX_DWORD) : MAX_DWORD)
1515
#define MASK_TO_WORD(val) ((val < MAX_WORD) ? (val & MAX_WORD) : MAX_WORD)
1616

17-
typedef uint32_t bufsize_t;
17+
typedef size_t bufsize_t;
1818
const bufsize_t BUFSIZE_MAX = bufsize_t(-1);
1919

2020
typedef uint64_t offset_t;

0 commit comments

Comments
 (0)