diff options
author | Dan McGee <dan@archlinux.org> | 2008-03-23 21:35:22 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-03-23 22:57:14 +0100 |
commit | 6104f2e1fb872c32d3e6ed1823729592fc6245b9 (patch) | |
tree | 7b4116ac09744307a6f18fc5ee6ac18295a52edf /lib/libalpm/dload.c | |
parent | bf8670036907b3ede18d37b7a3f0f7e14542a5ac (diff) | |
download | pacman-6104f2e1fb872c32d3e6ed1823729592fc6245b9.tar.gz pacman-6104f2e1fb872c32d3e6ed1823729592fc6245b9.tar.xz |
memleak fix: ensure we free result of get_destfile()
In the file:// download case, we didn't free the return from get_destfile()
after we were done with it. Fix it. (Found with xfercommand001.py)
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/dload.c')
-rw-r--r-- | lib/libalpm/dload.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index 2e50544b..2fcf6aa1 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -322,13 +322,12 @@ static int download(const char *url, const char *localpath, */ const char *sourcefile = url + len; const char *filename = get_filename(url); - const char *destfile = get_destfile(localpath, filename); + char *destfile = get_destfile(localpath, filename); - if(_alpm_copyfile(sourcefile, destfile) == 0) { - return(0); - } else { - return(-1); - } + ret = _alpm_copyfile(sourcefile, destfile); + FREE(destfile); + /* copyfile returns 1 on failure, we want to return -1 on failure */ + return(ret ? -1 : 0); } if(handle->xfercommand == NULL) { |