Change 34225 by [EMAIL PROTECTED] on 2008/08/24 15:23:41
Subject: [PATCH] Safer environ iteration
From: "Milosz Tanski" <[EMAIL PROTECTED]>
Date: Tue, 5 Aug 2008 18:33:02 -0400
Message-ID: <[EMAIL PROTECTED]>
Affected files ...
... //depot/perl/perl.c#873 edit
Differences ...
==== //depot/perl/perl.c#873 (text) ====
Index: perl/perl.c
--- perl/perl.c#872~34069~ 2008-06-17 04:16:38.000000000 -0700
+++ perl/perl.c 2008-08-24 08:23:41.000000000 -0700
@@ -4671,18 +4671,21 @@
environ[0] = NULL;
}
if (env) {
- char *s;
+ char *s, *old_var;
SV *sv;
for (; *env; env++) {
- if (!(s = strchr(*env,'=')) || s == *env)
+ old_var = *env;
+
+ if (!(s = strchr(old_var,'=')) || s == old_var)
continue;
+
#if defined(MSDOS) && !defined(DJGPP)
*s = '\0';
- (void)strupr(*env);
+ (void)strupr(old_var);
*s = '=';
#endif
sv = newSVpv(s+1, 0);
- (void)hv_store(hv, *env, s - *env, sv, 0);
+ (void)hv_store(hv, old_var, s - old_var, sv, 0);
if (env_is_not_environ)
mg_set(sv);
}
End of Patch.