From 49257b49f9dce71f8c5970d20e3a41e4541b70e8 Mon Sep 17 00:00:00 2001 From: Aurelien Foret Date: Sun, 24 Apr 2005 21:27:35 +0000 Subject: avoided to load twice the same target in remove_loadtarget() --- lib/libalpm/remove.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 279e2cb9..e42035ee 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -56,10 +56,17 @@ int remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name) /* ORE we should better find the package in the cache, and then perform a db_read(INFRQ_FILES) to add files information to it. */ + _alpm_log(PM_LOG_FLOW2, "loading target %s", name); if((info = db_scan(db, name, INFRQ_ALL)) == NULL) { _alpm_log(PM_LOG_ERROR, "could not find %s in database", name); RET_ERR(PM_ERR_PKG_NOT_FOUND, -1); } + + if(pkg_isin(info, trans->packages)) { + FREEPKG(info); + RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1); + } + trans->packages = pm_list_add(trans->packages, info); return(0); -- cgit v1.2.3-24-g4f1b