protect from possible overflow
This commit is contained in:
parent
b13dc6812c
commit
be835c73e6
@ -343,10 +343,10 @@ Atom Yap_LookupMaybeWideAtomWithLength(
|
|||||||
if (wide) {
|
if (wide) {
|
||||||
wchar_t *ptr0;
|
wchar_t *ptr0;
|
||||||
|
|
||||||
ptr0 = (wchar_t *)Yap_AllocCodeSpace(sizeof(wchar_t) * (len0 + 1));
|
ptr0 = (wchar_t *)Yap_AllocCodeSpace(sizeof(wchar_t) * (len0 + 2));
|
||||||
if (!ptr0)
|
if (!ptr0)
|
||||||
return NIL;
|
return NIL;
|
||||||
memcpy(ptr0, atom, len0 * sizeof(wchar_t));
|
memcpy(ptr0, atom, (len0+1) * sizeof(wchar_t));
|
||||||
ptr0[len0] = '\0';
|
ptr0[len0] = '\0';
|
||||||
at = LookupWideAtom(ptr0);
|
at = LookupWideAtom(ptr0);
|
||||||
Yap_FreeCodeSpace((char *)ptr0);
|
Yap_FreeCodeSpace((char *)ptr0);
|
||||||
@ -354,7 +354,7 @@ Atom Yap_LookupMaybeWideAtomWithLength(
|
|||||||
} else {
|
} else {
|
||||||
unsigned char *ptr0;
|
unsigned char *ptr0;
|
||||||
|
|
||||||
ptr0 = Yap_AllocCodeSpace((len0 + 1));
|
ptr0 = Yap_AllocCodeSpace((len0 + 2));
|
||||||
if (!ptr0)
|
if (!ptr0)
|
||||||
return NIL;
|
return NIL;
|
||||||
for (i = 0; i < len0; i++)
|
for (i = 0; i < len0; i++)
|
||||||
|
Reference in New Issue
Block a user