Commit 30986cb2 authored by Tobias Stoeckmann's avatar Tobias Stoeckmann

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.
parent 5e73c832
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment