resolve_path is a equivalent to calling realpath(path, NULL) except that the
returned string is guaranteed to be PATH_MAX long.  We never append to the
returned string, so this is unnecessary.

Signed-off-by: Andrew Gregory <[email protected]>
---
 src/pacman/query.c | 23 +++--------------------
 1 file changed, 3 insertions(+), 20 deletions(-)

diff --git a/src/pacman/query.c b/src/pacman/query.c
index 9b1ea6f..bb75465 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -38,23 +38,6 @@
 
 #define LOCAL_PREFIX "local/"
 
-static char *resolve_path(const char *file)
-{
-       char *str = NULL;
-
-       str = calloc(PATH_MAX, sizeof(char));
-       if(!str) {
-               return NULL;
-       }
-
-       if(!realpath(file, str)) {
-               free(str);
-               return NULL;
-       }
-
-       return str;
-}
-
 /* check if filename exists in PATH */
 static int search_path(char **filename, struct stat *bufptr)
 {
@@ -178,7 +161,7 @@ static int query_fileowner(alpm_list_t *targets)
                if(strcmp(dname, "") == 0) {
                        rpath = NULL;
                } else {
-                       rpath = resolve_path(dname);
+                       rpath = realpath(dname, NULL);
 
                        if(!rpath) {
                                pm_printf(ALPM_LOG_ERROR, _("cannot determine 
real path for '%s': %s\n"),
@@ -202,7 +185,7 @@ static int query_fileowner(alpm_list_t *targets)
                                char *ppath, *pdname;
                                const char *pkgfile = file->name;
 
-                               /* avoid the costly resolve_path usage if the 
basenames don't match */
+                               /* avoid the costly realpath usage if the 
basenames don't match */
                                if(strcmp(mbasename(pkgfile), bname) != 0) {
                                        continue;
                                }
@@ -223,7 +206,7 @@ static int query_fileowner(alpm_list_t *targets)
                                strcpy(path + rootlen, pkgfile);
 
                                pdname = mdirname(path);
-                               ppath = resolve_path(pdname);
+                               ppath = realpath(pdname, NULL);
                                free(pdname);
 
                                if(ppath && strcmp(ppath, rpath) == 0) {
-- 
1.7.11.2


Reply via email to