From be835c73e6a6fe37cf7718ce04c7a33b627dc7b8 Mon Sep 17 00:00:00 2001 From: V'itor Santos Costa Date: Thu, 11 Feb 2016 05:55:53 -0800 Subject: [PATCH] protect from possible overflow --- C/adtdefs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/C/adtdefs.c b/C/adtdefs.c index f25228d6d..c38d1cd15 100755 --- a/C/adtdefs.c +++ b/C/adtdefs.c @@ -343,10 +343,10 @@ Atom Yap_LookupMaybeWideAtomWithLength( if (wide) { 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) return NIL; - memcpy(ptr0, atom, len0 * sizeof(wchar_t)); + memcpy(ptr0, atom, (len0+1) * sizeof(wchar_t)); ptr0[len0] = '\0'; at = LookupWideAtom(ptr0); Yap_FreeCodeSpace((char *)ptr0); @@ -354,7 +354,7 @@ Atom Yap_LookupMaybeWideAtomWithLength( } else { unsigned char *ptr0; - ptr0 = Yap_AllocCodeSpace((len0 + 1)); + ptr0 = Yap_AllocCodeSpace((len0 + 2)); if (!ptr0) return NIL; for (i = 0; i < len0; i++)