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.
This commit is contained in:
parent
5e73c83262
commit
30986cb22e
6
pwdx.c
6
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user