summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-09-22 02:13:43 +0200
committerDan McGee <dan@archlinux.org>2011-09-22 17:31:28 +0200
commit5e7875ae6a42de40e3a7432ea758b27397a11aa7 (patch)
tree3305e8217336e96b9193d7df4ed098c9018c7139 /lib
parent3a460a8be650437326507b5604243d8fccbcfe26 (diff)
downloadpacman-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>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/signing.c5
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;
}