FindModule: stop copying const char *dirname to char *dirpath

Not needed since 6cf844ab69 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@oracle.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
This commit is contained in:
Alan Coopersmith 2011-11-07 20:09:47 -08:00
parent 05f589d464
commit 8e4556f560

View File

@ -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;
}