[PATCH 5/7] FindModule: stop copying const char *dirname to char *dirpath

Alan Coopersmith alan.coopersmith at oracle.com
Tue Nov 8 12:42:53 PST 2011


Not needed since 6cf844ab69926b split out the allocation/manipulation
into the helper function, leaving FindModule just copying the pointer
around, and causing gcc warnings and an unreachable call to free.

Also no longer need to store the combined strlen results in dirlen.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 hw/xfree86/loader/loadmod.c |   11 +++--------
 1 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index a21f43d6..c697d74 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -437,14 +437,11 @@ FindModule(const char *module, const char *dirname, const char **subdirlist,
 	   PatternPtr patterns)
 {
     char buf[PATH_MAX + 1];
-    char *dirpath = NULL;
     char *name = NULL;
-    int dirlen;
     const char **subdirs = NULL;
     const char **s;
 
-    dirpath = (char *)dirname;
-    if (strlen(dirpath) > PATH_MAX)
+    if (strlen(dirname) > PATH_MAX)
 	return NULL;
     
     subdirs = InitSubdirs(subdirlist);
@@ -452,17 +449,15 @@ FindModule(const char *module, const char *dirname, const char **subdirlist,
 	return NULL;
 
     for (s = subdirs; *s; s++) {
-	if ((dirlen = strlen(dirpath) + strlen(*s)) > PATH_MAX)
+	if ((strlen(dirname) + strlen(*s)) > PATH_MAX)
 	    continue;
-	strcpy(buf, dirpath);
+	strcpy(buf, dirname);
 	strcat(buf, *s);
         if ((name = FindModuleInSubdir(buf, module)))
             break;
     }
 
     FreeSubdirs(subdirs);
-    if (dirpath != dirname)
-	free(dirpath);
 
     return name;
 }
-- 
1.7.3.2



More information about the xorg-devel mailing list