diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c index 21a657dfc..49823fa7f 100644 --- a/libbb/xreadlink.c +++ b/libbb/xreadlink.c @@ -24,8 +24,9 @@ extern char *xreadlink(const char *path) buf = xrealloc(buf, bufsize += GROWBY); readsize = readlink(path, buf, bufsize); /* 1st try */ if (readsize == -1) { - bb_perror_msg("%s", path); - return NULL; + bb_perror_msg("%s", path); + free(buf); + return NULL; } } while (bufsize < readsize + 1);