_getenv_r patch

Jeff Johnston jjohnstn@redhat.com
Mon Sep 29 15:48:00 GMT 2008


Patch checked in.  Thanks.

-- Jeff J.

Howland Craig D (Craig) wrote:
> Here's a patch for _getenv_r() so that it properly fails to make a match
> if the given name contains an '='.  (Otherwise it can erroneously
> match an entry which has an = in the value.)  The patch file contains
> the
> ChangeLog entry, too.
>  
> Craig Howland
>  
> The following program fragment demonstrates the problem being solved.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <errno.h>
> ...
>
> int  ow=1;
> const char  *id, *val;
>
> /* Tricky case */
> id = "Craig";
> val = "two=one";
> ow = 1;
> printf("setenv('%s','%s', %d) = %d\n", id, val, ow, setenv(id, val,
> ow));
> /* env now contains "Craig=two=one" */
> printf("getenv('%s') = %s\n", id, getenv(id));	// Good match
> id = "Craig=two";
> printf("getenv('%s') = %s\n", id, getenv(id));	// Potential false match
>   



More information about the Newlib mailing list