Change 11389 by pudge@pudge-mobile on 2001/07/16 23:13:10 Fix %ENV to be tainted [SF bug #231848, Thomas Wegner]. Also add hack to get around missing setenv for PERL5DB. Affected files ... ... //depot/maint-5.6/macperl/macos/macish.c#2 edit ... //depot/maint-5.6/macperl/macos/macish.h#2 edit Differences ... ==== //depot/maint-5.6/macperl/macos/macish.c#2 (text) ==== Index: perl/macos/macish.c --- perl/macos/macish.c.~1~ Mon Jul 16 17:15:05 2001 +++ perl/macos/macish.c Mon Jul 16 17:15:05 2001 @@ -313,10 +313,13 @@ /* Perform a dummy fetch as an lval to insure that the hash table is * set up. Otherwise, the hv_store() will turn into a nullop */ (void) hv_fetch(envhv,"DEFAULT",7,TRUE); - (void) hv_delete(envhv,"DEFAULT",7, G_DISCARD); + (void) hv_delete(envhv,"DEFAULT",7,G_DISCARD); for (env = environ; *env; ++env) { + SV *sv; len = strchr(*env, '=') - *env; - hv_store(envhv,*env,len,newSVpv(*env+len+1, 0),0); + sv = newSVpv(*env+len+1, 0); + SvTAINTED_on(sv); + hv_store(envhv,*env,len,sv,0); } } /* end of prime_env_iter */ @@ -476,8 +479,10 @@ { int l = strlen(env); char ** e; - Boolean found; - + + if (strEQ(env, "PERL5DB") && gMacPerl_Perl5DB) + return gMacPerl_Perl5DB; + for (e = environ; *e; ++e) if (EqualEnv(env, *e)) return *e+l+1; @@ -811,7 +816,9 @@ } void -Perl_my_setenv(pTHX_ char *nam, char *val) +Perl_my_setenv(pTHX_ char *env, char *val) { + /* A hack just to get this darn thing working */ + if (strEQ(env, "PERL5DB")) + gMacPerl_Perl5DB = val; } - ==== //depot/maint-5.6/macperl/macos/macish.h#2 (text) ==== Index: perl/macos/macish.h --- perl/macos/macish.h.~1~ Mon Jul 16 17:15:05 2001 +++ perl/macos/macish.h Mon Jul 16 17:15:05 2001 @@ -74,6 +74,7 @@ MP_EXT char gMacPerl_AlwaysExtract MP_INIT(false); MP_EXT char gMacPerl_SyntaxError; MP_EXT char gMacPerl_MustPrime; +MP_EXT char * gMacPerl_Perl5DB; MP_EXT char gMacPerl_InModalDialog MP_INIT(false); MP_EXT short gMacPerl_OSErr; MP_EXT char gMacPerl_PseudoFileName[256]; End of Patch.