summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/add.c1
-rw-r--r--lib/libalpm/backup.c3
-rw-r--r--src/pacman/util.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index 78f6e951..0c3d7735 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -229,6 +229,7 @@ static int upgrade_remove(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans, pm
char *backup = _alpm_backup_file(b->data);
/* safety check (fix the upgrade026 pactest) */
if(!alpm_list_find_str(filelist, backup)) {
+ FREE(backup);
continue;
}
_alpm_log(PM_LOG_DEBUG, "adding %s to the NoUpgrade array temporarily\n",
diff --git a/lib/libalpm/backup.c b/lib/libalpm/backup.c
index bedbe8c1..f89df55e 100644
--- a/lib/libalpm/backup.c
+++ b/lib/libalpm/backup.c
@@ -42,6 +42,9 @@ int _alpm_backup_split(const char *string, char **file, char **hash)
if(ptr == NULL) {
if(file) {
*file = str;
+ } else {
+ /* don't need our dup as the fname wasn't requested, so free it */
+ FREE(str);
}
return(0);
}
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 2623dbdb..ed7669a3 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -388,7 +388,7 @@ alpm_list_t *strsplit(const char *str, const char splitchar)
if(dup == NULL) {
return(NULL);
}
- list = alpm_list_add(list, strdup(prev));
+ list = alpm_list_add(list, dup);
return(list);
}