summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChantry Xavier <shiningxc@gmail.com>2008-01-13 01:55:08 +0100
committerDan McGee <dan@archlinux.org>2008-01-13 19:21:21 +0100
commitab506f77c04a481782d9e53c6a285227f58f5cf7 (patch)
tree90852ab138ff0ca3f723561728effdf08777e9e0 /lib
parent3de21473768c1801833a10a1872ce7612e8edb59 (diff)
downloadpacman-ab506f77c04a481782d9e53c6a285227f58f5cf7.tar.gz
pacman-ab506f77c04a481782d9e53c6a285227f58f5cf7.tar.xz
util.c : fix segfault when the cachedir isn't usable.
For example, if the cachedir is a broken symlink or a non writable directory, pacman fallbacks to /tmp/. Just before doing that, it freed the handle->cachedirs list twice ! once in _alpm_filecache_setup, and once in alpm_option_set_cachedirs. So the first one was removed. Fixes FS#9186. Signed-off-by: Chantry Xavier <shiningxc@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/util.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 64006d1f..d09b9b14 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -582,9 +582,7 @@ const char *_alpm_filecache_setup(void)
}
/* we didn't find a valid cache directory. use /tmp. */
- i = alpm_option_get_cachedirs();
tmp = alpm_list_add(NULL, strdup("/tmp/"));
- FREELIST(i);
alpm_option_set_cachedirs(tmp);
_alpm_log(PM_LOG_DEBUG, "using cachedir: %s", "/tmp/\n");
_alpm_log(PM_LOG_WARNING, _("couldn't create package cache, using /tmp instead\n"));