On 16.07.2013 11:26, Andriy Gapon wrote:
> Modified: head/lib/libc/stdlib/getenv.c
> ==============================================================================
> --- head/lib/libc/stdlib/getenv.c     Tue Jul 16 06:50:22 2013        
> (r253379)
> +++ head/lib/libc/stdlib/getenv.c     Tue Jul 16 07:26:46 2013        
> (r253380)
> @@ -505,7 +505,7 @@ __setenv(const char *name, size_t nameLe
>               envVars[envNdx].valueSize = valueLen;
>  
>               /* Save name of name/value pair. */
> -             env = stpcpy(envVars[envNdx].name, name);
> +             env = stpncpy(envVars[envNdx].name, name, nameLen);
>               if ((envVars[envNdx].name)[nameLen] != '=')
>                       env = stpcpy(env, "=");
>       }
> 

I am not sure what you are trying to fix, but you just made next line
condition unpredictable random, since (envVars[envNdx].name)[nameLen] is
never filled now and there is freshly malloced memory content, which is
picked for != '=' comparison.

Please back it out or fix. Bug demonstration example added will be nice
too, I see no bug in the original code at first glance.

-- 
http://ache.vniz.net/
bitcoin:1G6ugdNY6e5jx1GVnAU2ntj2NEfmjKG85r
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to