diff options
author | Dan McGee <dan@archlinux.org> | 2008-02-13 22:42:34 -0600 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-02-13 22:52:53 -0600 |
commit | b206aaee881abd6e256428f2146212cfc1c69be2 (patch) | |
tree | f98a568ce0924d62f8e3779a02bd7058ff9eb7f3 /lib/libalpm/package.c | |
parent | f4ac63ab43a277cdc6a409c0bd6f0d04c1791882 (diff) | |
download | pacman-b206aaee881abd6e256428f2146212cfc1c69be2.tar.xz |
Ensure DESC infolevel is loaded before checking pkg->filename
This is the first step of fixing FS#9547. This should not break any existing
code that may rely on this function behaving the way it did, and should be
good for inclusion in a maint release.
In addition, update pactest so it fills the FILENAME field in the DB entries
it creates so we can move forward with a real fix to this issue.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/package.c')
-rw-r--r-- | lib/libalpm/package.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 937ee3e0..363cf313 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -162,11 +162,12 @@ const char SYMEXPORT *alpm_pkg_get_filename(pmpkg_t *pkg) ASSERT(handle != NULL, return(NULL)); ASSERT(pkg != NULL, return(NULL)); + if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { + _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); + } + if(!strlen(pkg->filename)) { /* construct the file name, it's not in the desc file */ - if(pkg->origin == PKG_FROM_CACHE && !(pkg->infolevel & INFRQ_DESC)) { - _alpm_db_read(pkg->origin_data.db, pkg, INFRQ_DESC); - } if(pkg->arch && strlen(pkg->arch) > 0) { snprintf(pkg->filename, PKG_FILENAME_LEN, "%s-%s-%s" PKGEXT, pkg->name, pkg->version, pkg->arch); |