diff options
Diffstat (limited to 'src/pacman')
-rw-r--r-- | src/pacman/query.c | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/src/pacman/query.c b/src/pacman/query.c index 25a3c5d2..f27c5c29 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -136,8 +136,8 @@ cleanup: static int query_fileowner(alpm_list_t *targets) { int ret = 0; - char path[PATH_MAX]; - size_t rootlen; + const char *root = alpm_option_get_root(config->handle); + size_t rootlen = strlen(root); alpm_list_t *t; alpm_db_t *db_local; alpm_list_t *packages; @@ -148,30 +148,6 @@ static int query_fileowner(alpm_list_t *targets) return 1; } - /* Set up our root path buffer. We only need to copy the location of root in - * once, then we can just overwrite whatever file was there on the previous - * iteration. */ - - /* resolve root now so any symlinks in it will only have to be resolved once */ - if(!realpath(alpm_option_get_root(config->handle), path)) { - pm_printf(ALPM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"), - path, strerror(errno)); - return 1; - } - - /* make sure there's enough room to append the package file to path */ - rootlen = strlen(path); - if(rootlen + 2 > PATH_MAX) { - pm_printf(ALPM_LOG_ERROR, _("path too long: %s%s\n"), path, ""); - return 1; - } - - /* append trailing '/' removed by realpath */ - if(path[rootlen - 1] != '/') { - path[rootlen++] = '/'; - path[rootlen] = '\0'; - } - db_local = alpm_get_localdb(config->handle); packages = alpm_db_get_pkgcache(db_local); @@ -214,7 +190,7 @@ static int query_fileowner(alpm_list_t *targets) goto targcleanup; } - if(strncmp(rpath, path, rootlen) != 0) { + if(strncmp(rpath, root, rootlen) != 0) { /* file is outside root, we know nothing can own it */ pm_printf(ALPM_LOG_ERROR, _("No package owns %s\n"), filename); goto targcleanup; |