1 --- helper.c.orig 2010-09-08 05:58:11 UTC 2 +++ helper.c 3 @@ -323,16 +323,22 @@ int valid_arg_vector(char **av) 4 char *substitute_known_path(char *request) 5 { 6 cmd_t *cmd=commands; 7 - char *stripped_req=strdup(basename(request)); 8 + char *mrequest=strdup(request); 9 + char *stripped_req=strdup(basename(mrequest)); 10 + free(mrequest); 11 while (cmd != NULL) 12 { 13 + char *mname; 14 if (cmd->name == NULL) 15 break; 16 - if (exact_match(basename(cmd->name),stripped_req)) 17 + mname = strdup(cmd->name); 18 + if (exact_match(basename(mname),stripped_req)) 19 { 20 free(stripped_req); /* discard old pathname */ 21 + free(mname); 22 return (strdup(cmd->name)); 23 } 24 + free(mname); 25 cmd++; 26 } 27 return (stripped_req); 28