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