summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/dload.h
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-09-28 19:58:43 +0200
committerDan McGee <dan@archlinux.org>2011-09-28 20:01:03 +0200
commite0acf2f144404e613a75d5aafea2a909989544e9 (patch)
treefce12af0ebf8344e6b1c10533ee7de5707083f3c /lib/libalpm/dload.h
parent9a58d5c6c5a69ebf7a920c357820a59c19d5b641 (diff)
downloadpacman-e0acf2f144404e613a75d5aafea2a909989544e9.tar.gz
pacman-e0acf2f144404e613a75d5aafea2a909989544e9.tar.xz
Refactor download payload reset and free
This was done to squash a memory leak in the sync database download code. When we downloaded a database and then reused the payload struct, we could find ourselves calling get_fullpath() for the signatures and overwriting non-freed values we had left over from the database download. Refactor the payload_free function into a payload_reset function that we can call that does NOT free the payload itself, so we can reuse payload structs. This also allows us to move the payload to the stack in some call paths, relieving us of the need to alloc space. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/dload.h')
-rw-r--r--lib/libalpm/dload.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libalpm/dload.h b/lib/libalpm/dload.h
index c2fd6095..9be29bc8 100644
--- a/lib/libalpm/dload.h
+++ b/lib/libalpm/dload.h
@@ -42,7 +42,7 @@ struct dload_payload {
CURLcode curlerr; /* last error produced by curl */
};
-void _alpm_dload_payload_free(struct dload_payload *payload);
+void _alpm_dload_payload_reset(struct dload_payload *payload);
int _alpm_download(struct dload_payload *payload, const char *localpath,
char **final_file);