]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory
authorHarlan Stenn <stenn@ntp.org>
Thu, 2 Mar 2017 22:34:00 +0000 (17:34 -0500)
committerHarlan Stenn <stenn@ntp.org>
Thu, 2 Mar 2017 22:34:00 +0000 (17:34 -0500)
bk: 58b89dd858FkqPk48ACoSQvi8Rv7Tw

include/ntp_stdlib.h
libntp/authkeys.c
libntp/emalloc.c

index a1ac8e3a9ed17fb8dae1d7f008b22fef8867c525..3213900ea73713f40881956d38811f546c6d2ac3 100644 (file)
@@ -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, \
index e1456a4ca1921cf849f2bfb84b881a824ee008fe..b2ff410cd476817c08e3c166926f82b72415f7a1 100644 (file)
@@ -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
index 8d786c4112c4f2428de54c97de33459466efd29e..7746b7a72f59f79e9ff8de5d341674cfd96506ad 100644 (file)
@@ -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
 }