diff options
Diffstat (limited to 'shells/scponly/files/patch-helper.c')
-rw-r--r-- | shells/scponly/files/patch-helper.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/shells/scponly/files/patch-helper.c b/shells/scponly/files/patch-helper.c index 6d04529d5cde..bd90445ad78b 100644 --- a/shells/scponly/files/patch-helper.c +++ b/shells/scponly/files/patch-helper.c @@ -1,26 +1,27 @@ --- helper.c.orig 2010-09-08 05:58:11 UTC +++ helper.c -@@ -323,16 +323,20 @@ int valid_arg_vector(char **av) +@@ -323,16 +323,22 @@ int valid_arg_vector(char **av) char *substitute_known_path(char *request) { cmd_t *cmd=commands; - char *stripped_req=strdup(basename(request)); -+ char *stripped_req=strdup(request); -+ stripped_req=basename(stripped_req); ++ char *mrequest=strdup(request); ++ char *stripped_req=strdup(basename(mrequest)); ++ free(mrequest); while (cmd != NULL) { -+ char *nname; ++ char *mname; if (cmd->name == NULL) break; - if (exact_match(basename(cmd->name),stripped_req)) -+ nname = strdup(cmd->name); -+ if (exact_match(basename(nname),stripped_req)) ++ mname = strdup(cmd->name); ++ if (exact_match(basename(mname),stripped_req)) { free(stripped_req); /* discard old pathname */ -- return (strdup(cmd->name)); -+ return (nname); ++ free(mname); + return (strdup(cmd->name)); } -+ free(nname); ++ free(mname); cmd++; } return (stripped_req); |