From: Tobias Stoeckmann Date: Sat, 11 Jul 2015 19:28:47 +0000 (+0200) Subject: Handle out of memory conditions. X-Git-Tag: v3.3.11~15^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30986cb22e2f26d83cbb8516bf25d3fa5c9a577d;p=procps-ng Handle out of memory conditions. malloc and realloc could return NULL when no memory is available. The code doesn't handle errors, so use xmalloc/xrealloc instead. While at it, sync alloclen's type with len's type, so both are ssize_t. --- diff --git a/pwdx.c b/pwdx.c index 07bedfc8..3e0afca6 100644 --- a/pwdx.c +++ b/pwdx.c @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) { int ch; int retval = 0, i; - int alloclen = 128; + ssize_t alloclen = 128; char *pathbuf; static const struct option longopts[] = { @@ -99,7 +99,7 @@ int main(int argc, char *argv[]) if (argc == 0) usage(stderr); - pathbuf = malloc(alloclen); + pathbuf = xmalloc(alloclen); for (i = 0; i < argc; i++) { char *s; @@ -128,7 +128,7 @@ int main(int argc, char *argv[]) */ while ((len = readlink(buf, pathbuf, alloclen)) == alloclen) { alloclen *= 2; - pathbuf = realloc(pathbuf, alloclen); + pathbuf = xrealloc(pathbuf, alloclen); } free(buf);