calloc: check multiplication overflow
This commit is contained in:
parent
feb58cce49
commit
be0301f458
2 changed files with 13 additions and 8 deletions
|
@ -280,10 +280,13 @@ msize(void *v)
|
|||
}
|
||||
|
||||
void*
|
||||
calloc(ulong n, ulong szelem)
|
||||
calloc(ulong n, ulong s)
|
||||
{
|
||||
void *v;
|
||||
if(v = mallocz(n*szelem, 1))
|
||||
|
||||
if(n > 1 && ((ulong)-1)/n < s)
|
||||
return nil;
|
||||
if(v = mallocz(n*s, 1))
|
||||
setmalloctag(v, getcallerpc(&n));
|
||||
return v;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue