[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Re: [ID 20000121.005] System command starting with environment



Dominic Dunlop writes:
> 
> At 16:07 -0800 2000-01-21, Doug Wilson wrote:
> >A non zero status is returned from the
> >system() function when the supplied command
> >begins with an environment variable setting
> >where the environment variable contains an
> >underscore or a digit.
> 
> It's not HP-specific, or 5.005_03-specific.  Here's a one-line fix. 
> It's against 5.005_03, as that's what the report's against, but also 
> applies to 5.005_63 (with an offset of 184 lines).
> 
> --- perl5.005_03/doio.c-as_received	Sat Mar 27 17:57:24 1999
> +++ perl5.005_03/doio.c	Sat Jan 22 18:10:15 2000
> @@ -1069,7 +1069,7 @@ do_exec(char *cmd)
>       if (strnEQ(cmd,"exec",4) && isSPACE(cmd[4]))
>   	goto doshell;
> 
> -    for (s = cmd; *s && isALPHA(*s); s++) ;	/* catch VAR=val gizmo */
> +    for (s = cmd; *s && isALNUM_LC(*s); s++) ;	/* catch VAR=val gizmo */
>       if (*s == '=')
>   	goto doshell;

Is not LC locale?  Then this is not a fix (set LANG=C), and is a very
dangerous modification (putting locale-dependencies in the core
operation).  What about isWORD (sp?)?

Ilya


Follow-Ups from:
Dominic Dunlop <domo@computer.org>
References to:
Dominic Dunlop <domo@computer.org>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]