From: Harlan Stenn Date: Thu, 2 Mar 2017 22:34:00 +0000 (-0500) Subject: [Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f37b77f70c065b26cfbaba49a10175ce8573e7fb;p=thirdparty%2Fntp.git [Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory bk: 58b89dd858FkqPk48ACoSQvi8Rv7Tw --- diff --git a/include/ntp_stdlib.h b/include/ntp_stdlib.h index a1ac8e3a9..3213900ea 100644 --- a/include/ntp_stdlib.h +++ b/include/ntp_stdlib.h @@ -105,22 +105,22 @@ extern u_int32 addr2refid (sockaddr_u *); /* emalloc.c */ #ifndef EREALLOC_CALLSITE /* ntp_malloc.h defines */ extern void * ereallocz (void *, size_t, size_t, int); -extern void * oreallocarrayx (void *optr, size_t nmemb, size_t size, size_t extra); +extern void * oreallocarrayxz (void *optr, size_t nmemb, size_t size, size_t extra); #define erealloczsite(p, n, o, z, f, l) ereallocz((p), (n), (o), (z)) #define emalloc(n) ereallocz(NULL, (n), 0, FALSE) #define emalloc_zero(c) ereallocz(NULL, (c), 0, TRUE) #define erealloc(p, c) ereallocz((p), (c), 0, FALSE) #define erealloc_zero(p, n, o) ereallocz((p), (n), (o), TRUE) -#define ereallocarray(p, n, s) oreallocarrayx((p), (n), (s), 0) -#define eallocarray(n, s) oreallocarrayx(NULL, (n), (s), 0) -#define ereallocarrayx(p, n, s, x) oreallocarrayx((p), (n), (s), (x)) -#define eallocarrayx(n, s, x) oreallocarrayx(NULL, (n), (s), (x)) +#define ereallocarray(p, n, s) oreallocarrayxz((p), (n), (s), 0) +#define eallocarray(n, s) oreallocarrayxz(NULL, (n), (s), 0) +#define ereallocarrayxz(p, n, s, x) oreallocarrayxz((p), (n), (s), (x)) +#define eallocarrayxz(n, s, x) oreallocarrayxz(NULL, (n), (s), (x)) extern char * estrdup_impl(const char *); #define estrdup(s) estrdup_impl(s) #else extern void * ereallocz (void *, size_t, size_t, int, const char *, int); -extern void * oreallocarrayx (void *optr, size_t nmemb, size_t size, +extern void * oreallocarrayxz (void *optr, size_t nmemb, size_t size, size_t extra, const char *, int); #define erealloczsite ereallocz #define emalloc(c) ereallocz(NULL, (c), 0, FALSE, \ diff --git a/libntp/authkeys.c b/libntp/authkeys.c index e1456a4ca..b2ff410cd 100644 --- a/libntp/authkeys.c +++ b/libntp/authkeys.c @@ -250,7 +250,7 @@ auth_moremem( i = (keycount > 0) ? keycount : MEMINC; - sk = eallocarrayx(i, sizeof(*sk), MOREMEM_EXTRA_ALLOC); + sk = eallocarrayxz(i, sizeof(*sk), MOREMEM_EXTRA_ALLOC); #ifdef DEBUG base = sk; #endif diff --git a/libntp/emalloc.c b/libntp/emalloc.c index 8d786c411..7746b7a72 100644 --- a/libntp/emalloc.c +++ b/libntp/emalloc.c @@ -83,7 +83,7 @@ ereallocz( #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) void * -oreallocarrayx( +oreallocarrayxz( void *optr, size_t nmemb, size_t size, @@ -107,9 +107,9 @@ oreallocarrayx( exit(1); } #ifndef EREALLOC_CALLSITE - return ereallocz(optr, extra + (size * nmemb), 0, FALSE); + return ereallocz(optr, extra + (size * nmemb), 0, TRUE); #else - return ereallocz(optr, extra + (size * nmemb), 0, FALSE, file, line); + return ereallocz(optr, extra + (size * nmemb), 0, TRUE, file, line); #endif }