diff options
-rw-r--r-- | lib/libalpm/db.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index 466c96f1..26e351fd 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -574,6 +574,13 @@ int _alpm_db_add_pkgincache(alpm_db_t *db, alpm_pkg_t *pkg) _alpm_log(db->handle, ALPM_LOG_DEBUG, "adding entry '%s' in '%s' cache\n", newpkg->name, db->treename); + if(newpkg->origin == ALPM_PKG_FROM_FILE) { + free(newpkg->origin_data.file); + } + newpkg->origin = (db->status & DB_STATUS_LOCAL) + ? ALPM_PKG_FROM_LOCALDB + : ALPM_PKG_FROM_SYNCDB; + newpkg->origin_data.db = db; db->pkgcache = _alpm_pkghash_add_sorted(db->pkgcache, newpkg); free_groupcache(db); |