Revert "Fix free of $value after ${run...}"
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 24 Aug 2023 14:44:31 +0000 (15:44 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Thu, 24 Aug 2023 15:06:34 +0000 (16:06 +0100)
This reverts commit cf3fecb9e873df38a9245775a3887e73a8716083.

src/src/expand.c
test/mail/0635.CALLER [deleted file]

index ca954ebc29ec3ceb47fdea8739482ce135545c3f..590b40383dbbe41254df3822ed2fa1d3545a9c58 100644 (file)
@@ -5646,8 +5646,6 @@ while (*s)
       FILE * f;
       const uschar * arg, ** argv;
       unsigned late_expand = TSUC_EXPAND_ARGS | TSUC_ALLOW_TAINTED_ARGS | TSUC_ALLOW_RECIPIENTS;
       FILE * f;
       const uschar * arg, ** argv;
       unsigned late_expand = TSUC_EXPAND_ARGS | TSUC_ALLOW_TAINTED_ARGS | TSUC_ALLOW_RECIPIENTS;
-      uschar * save_value = lookup_value;
-      int yesno;
 
       if (expand_forbid & RDO_RUN)
         {
 
       if (expand_forbid & RDO_RUN)
         {
@@ -5770,24 +5768,20 @@ while (*s)
             expand_string_message = string_sprintf("command killed by signal %d",
               -runrc);
 
             expand_string_message = string_sprintf("command killed by signal %d",
               -runrc);
 
-         lookup_value = save_value;
           goto EXPAND_FAILED;
           }
         }
 
       /* Process the yes/no strings; $value may be useful in both cases */
 
           goto EXPAND_FAILED;
           }
         }
 
       /* Process the yes/no strings; $value may be useful in both cases */
 
-      yesno = process_yesno(
+      switch(process_yesno(
                flags,                  /* were previously skipping */
                runrc == 0,             /* success/failure indicator */
                lookup_value,           /* value to reset for string2 */
                &s,                     /* input pointer */
                &yield,                 /* output pointer */
                US"run",                        /* condition type */
                flags,                  /* were previously skipping */
                runrc == 0,             /* success/failure indicator */
                lookup_value,           /* value to reset for string2 */
                &s,                     /* input pointer */
                &yield,                 /* output pointer */
                US"run",                        /* condition type */
-              &resetok);
-      lookup_value = save_value;
-
-      switch(yesno)
+              &resetok))
         {
         case 1: goto EXPAND_FAILED;          /* when all is well, the */
         case 2: goto EXPAND_FAILED_CURLY;    /* returned value is 0 */
         {
         case 1: goto EXPAND_FAILED;          /* when all is well, the */
         case 2: goto EXPAND_FAILED_CURLY;    /* returned value is 0 */
diff --git a/test/mail/0635.CALLER b/test/mail/0635.CALLER
deleted file mode 100644 (file)
index 25b61aa..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-From someone@some.domain Tue Mar 02 09:44:33 1999
-Received: from CALLER (helo=test)
-       by the.local.host.name with local-smtp (Exim x.yz)
-       (envelope-from <someone@some.domain>)
-       id 10HmaX-000000005vi-0000
-       for CALLER@the.local.host.name;
-       Tue, 2 Mar 1999 09:44:33 +0000
-Message-Id: <E10HmaX-000000005vi-0000@the.local.host.name>
-From: someone@some.domain
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-
-This is a test message.
-