Merge branch 'fuck-globals' into 'master'

I_Error if memory allocation size overflows

See merge request STJr/SRB2Internal!426
This commit is contained in:
MascaraSnake 2019-11-11 11:38:07 -05:00
commit 2c592e9000

View file

@ -247,7 +247,11 @@ void Z_Free(void *ptr)
static void *xm(size_t size) static void *xm(size_t size)
{ {
const size_t padedsize = size+sizeof (size_t); const size_t padedsize = size+sizeof (size_t);
void *p = malloc(padedsize); void *p;
if (padedsize < size)/* overflow check */
I_Error("You are allocating memory too large!");
p = malloc(padedsize);
if (p == NULL) if (p == NULL)
{ {
@ -295,6 +299,9 @@ void *Z_MallocAlign(size_t size, INT32 tag, void *user, INT32 alignbits)
CONS_Debug(DBG_MEMORY, "Z_Malloc %s:%d\n", file, line); CONS_Debug(DBG_MEMORY, "Z_Malloc %s:%d\n", file, line);
#endif #endif
if (blocksize < size)/* overflow check */
I_Error("You are allocating memory too large!");
block = xm(sizeof *block); block = xm(sizeof *block);
#ifdef HAVE_VALGRIND #ifdef HAVE_VALGRIND
padsize += (1<<sizeof(size_t))*2; padsize += (1<<sizeof(size_t))*2;