summaryrefslogtreecommitdiff
path: root/lib/libalpm
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-03-30 13:42:24 -0500
committerDan McGee <dan@archlinux.org>2008-03-30 13:42:24 -0500
commit0d1263af260d9bb7c4aeb29d1637da5fdc1a949e (patch)
treedd208e1a8d9b3773f92c82921533d7498a5e5510 /lib/libalpm
parent41c1295559bf4764c6b710cd14d300758c41a19a (diff)
parentd9b9e60d7d4943ec0395a66bd40d22089cfbee35 (diff)
downloadpacman-0d1263af260d9bb7c4aeb29d1637da5fdc1a949e.tar.xz
Merge branch 'maint'
Diffstat (limited to 'lib/libalpm')
-rw-r--r--lib/libalpm/add.c4
-rw-r--r--lib/libalpm/remove.c8
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index 0c3d7735..619ce5e6 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -276,7 +276,7 @@ static int extract_single_file(struct archive *archive,
struct archive_entry *entry, pmpkg_t *newpkg, pmpkg_t *oldpkg,
pmtrans_t *trans, pmdb_t *db)
{
- const char *entryname; /* the name of the file in the archive */
+ char entryname[PATH_MAX]; /* the name of the file in the archive */
mode_t entrymode;
char filename[PATH_MAX]; /* the actual file we're extracting */
int needbackup = 0, notouch = 0;
@@ -286,7 +286,7 @@ static int extract_single_file(struct archive *archive,
ARCHIVE_EXTRACT_TIME;
int errors = 0;
- entryname = archive_entry_pathname(entry);
+ strncpy(entryname, archive_entry_pathname(entry), PATH_MAX);
entrymode = archive_entry_mode(entry);
memset(filename, 0, PATH_MAX); /* just to be sure */
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index dfdcabe0..8d832942 100644
--- a/lib/libalpm/remove.c
+++ b/lib/libalpm/remove.c
@@ -61,7 +61,7 @@ int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
}
- if((info = _alpm_db_scan(db, name)) == NULL) {
+ if((info = _alpm_db_get_pkgfromcache(db, name)) == NULL) {
_alpm_log(PM_LOG_DEBUG, "could not find %s in database\n", name);
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
}
@@ -77,7 +77,7 @@ int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
}
_alpm_log(PM_LOG_DEBUG, "adding %s in the targets list\n", info->name);
- trans->packages = alpm_list_add(trans->packages, info);
+ trans->packages = alpm_list_add(trans->packages, _alpm_pkg_dup(info));
return(0);
}
@@ -107,12 +107,12 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
alpm_list_t *i;
for(i = lp; i; i = i->next) {
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
- pmpkg_t *info = _alpm_db_scan(db, miss->target);
+ pmpkg_t *info = _alpm_db_get_pkgfromcache(db, miss->target);
if(info) {
if(!_alpm_pkg_find(alpm_pkg_get_name(info), trans->packages)) {
_alpm_log(PM_LOG_DEBUG, "pulling %s in the targets list\n",
alpm_pkg_get_name(info));
- trans->packages = alpm_list_add(trans->packages, info);
+ trans->packages = alpm_list_add(trans->packages, _alpm_pkg_dup(info));
}
} else {
_alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"),