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 | |
| 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
| -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); |
