diff options
author | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2004-08-11 03:50:30 +0000 |
---|---|---|
committer | bug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2004-08-11 03:50:30 +0000 |
commit | 6eba5c19bc8f5673b264256067be02dca8e8f4a1 (patch) | |
tree | 30fdc91297c3c01324165ebc756e4ae31093dfab /libbb | |
parent | 99d54f71eaba2eb1b587f75c732ee4c093575758 (diff) | |
download | busybox-w32-6eba5c19bc8f5673b264256067be02dca8e8f4a1.tar.gz busybox-w32-6eba5c19bc8f5673b264256067be02dca8e8f4a1.tar.bz2 busybox-w32-6eba5c19bc8f5673b264256067be02dca8e8f4a1.zip |
Patch from Tito to fix memory leak upon error.
git-svn-id: svn://busybox.net/trunk/busybox@9085 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/xreadlink.c | 5 |
1 files changed, 3 insertions, 2 deletions
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) | |||
24 | buf = xrealloc(buf, bufsize += GROWBY); | 24 | buf = xrealloc(buf, bufsize += GROWBY); |
25 | readsize = readlink(path, buf, bufsize); /* 1st try */ | 25 | readsize = readlink(path, buf, bufsize); /* 1st try */ |
26 | if (readsize == -1) { | 26 | if (readsize == -1) { |
27 | bb_perror_msg("%s", path); | 27 | bb_perror_msg("%s", path); |
28 | return NULL; | 28 | free(buf); |
29 | return NULL; | ||
29 | } | 30 | } |
30 | } | 31 | } |
31 | while (bufsize < readsize + 1); | 32 | while (bufsize < readsize + 1); |