---
 src/pacman/util.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index dd6e218..3d71d8b 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;
-- 
2.4.6

Reply via email to