diff options
author | Rikard Falkeborn <rikard.falkeborn@gmail.com> | 2015-07-20 21:34:10 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2015-08-08 02:36:21 +0200 |
commit | 2d0e2bf2558698db242fbc382675ee00044c0d76 (patch) | |
tree | 9c5ebf2f2e3c5c3dbd3bc429ea5842f30c609782 /src | |
parent | b8c9385b8bbe9ad8a904e4cc27966f1029e67765 (diff) | |
download | pacman-2d0e2bf2558698db242fbc382675ee00044c0d76.tar.gz pacman-2d0e2bf2558698db242fbc382675ee00044c0d76.tar.xz |
pacman/util.c: Fix memory leak if realloc fails
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/pacman/util.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c index dd6e218a..3d71d8b0 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1449,11 +1449,14 @@ int multiselect_question(char *array, int count) size_t len; /* handle buffer not being large enough to read full line case */ while(*lastchar == '\0' && lastchar[-1] != '\n') { + char *new_response; response_len += response_incr; - response = realloc(response, response_len); - if(!response) { + new_response = realloc(response, response_len); + if(!new_response) { + free(response); return -1; } + response = new_response; lastchar = response + response_len - 1; /* sentinel byte */ *lastchar = 1; |