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.

Reply via email to