From: Todd C. Miller Date: Sun, 21 Jun 2015 01:27:31 +0000 (-0600) Subject: It's safe to rely on C89 semantics for realloc(NULL, size). X-Git-Tag: SUDO_1_8_14^2~58 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d7224ea502f04dc33e5e92d68122f0dc02f22d8d;p=sudo It's safe to rely on C89 semantics for realloc(NULL, size). --- diff --git a/lib/util/getline.c b/lib/util/getline.c index 60bc6f918..23c5cce4c 100644 --- a/lib/util/getline.c +++ b/lib/util/getline.c @@ -45,7 +45,7 @@ sudo_getline(char **bufp, size_t *bufsizep, FILE *fp) bufsize = *bufp ? *bufsizep : 0; if (bufsize == 0 || bufsize - 1 < len) { bufsize = len + 1; - cp = *bufp ? realloc(*bufp, bufsize) : malloc(bufsize); + cp = realloc(*bufp, bufsize); if (cp == NULL) return -1; *bufp = cp; @@ -68,7 +68,7 @@ sudo_getline(char **bufp, size_t *bufsizep, FILE *fp) bufsize = *bufsizep; if (buf == NULL || bufsize == 0) { bufsize = LINE_MAX; - cp = buf ? realloc(buf, bufsize) : malloc(bufsize); + cp = realloc(buf, bufsize); if (cp == NULL) return -1; buf = cp; diff --git a/plugins/sudoers/toke_util.c b/plugins/sudoers/toke_util.c index 67d071431..52a0d7673 100644 --- a/plugins/sudoers/toke_util.c +++ b/plugins/sudoers/toke_util.c @@ -142,10 +142,9 @@ fill_args(const char *s, int len, int addspace) if (new_len >= arg_size) { /* Allocate more space than we need for subsequent args */ while (new_len >= (arg_size += COMMANDARGINC)) - ; + continue; - p = sudoerslval.command.args ? - realloc(sudoerslval.command.args, arg_size) : malloc(arg_size); + p = realloc(sudoerslval.command.args, arg_size); if (p == NULL) { free(sudoerslval.command.args); sudo_warn(NULL);