diff options
author | Dan McGee <dan@archlinux.org> | 2011-09-22 02:13:43 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-09-22 17:31:28 +0200 |
commit | 5e7875ae6a42de40e3a7432ea758b27397a11aa7 (patch) | |
tree | 3305e8217336e96b9193d7df4ed098c9018c7139 | |
parent | 3a460a8be650437326507b5604243d8fccbcfe26 (diff) | |
download | pacman-5e7875ae6a42de40e3a7432ea758b27397a11aa7.tar.gz pacman-5e7875ae6a42de40e3a7432ea758b27397a11aa7.tar.xz |
Fix possible segfault if siglist was empty
If siglist->results wasn't a NULL pointer, we would try to free it
anyway, even if siglist->count was zero. Only attempt to free this
pointer if we had results and the pointer is valid.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | lib/libalpm/signing.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c index e1b6452c..b090b6a9 100644 --- a/lib/libalpm/signing.c +++ b/lib/libalpm/signing.c @@ -615,7 +615,10 @@ int SYMEXPORT alpm_siglist_cleanup(alpm_siglist_t *siglist) free(result->key.fingerprint); } } - FREE(siglist->results); + if(siglist->count) { + free(siglist->results); + } + siglist->results = NULL; siglist->count = 0; return 0; } |