From 30986cb22e2f26d83cbb8516bf25d3fa5c9a577d Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Sat, 11 Jul 2015 21:28:47 +0200 Subject: [PATCH] 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. --- pwdx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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);