Re: [Exim] String expansion broken?

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: michael
CC: exim-users
Subject: Re: [Exim] String expansion broken?
On 7 Mar 2002 michael@??? wrote:

> exim -be '${if ={1}{1} {true}{${if ={1}{1} {true}{${if ={1}{1} {true}fail}}}}}'
>
> the result is
>
> true}}


It was a stupidity in the code. Below are the patches for 3.35 and 4.01.

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.



-----------------------------------------------------------------------
*** exim-3.35/src/expand.c  Tue Feb 19 10:10:43 2002
--- expand.c    Fri Mar  8 15:14:29 2002
***************
*** 1266,1272 ****
    s = read_name(name, sizeof(name), s, "_");
    if (strcmp(name, "fail") == 0)
      {
!     if (!yes)
        {
        while (isspace((uschar)*s)) s++;
        if (*s++ != '}') goto FAILED_CURLY;
--- 1266,1272 ----
    s = read_name(name, sizeof(name), s, "_");
    if (strcmp(name, "fail") == 0)
      {
!     if (!yes && !skipping)
        {
        while (isspace((uschar)*s)) s++;
        if (*s++ != '}') goto FAILED_CURLY;
-----------------------------------------------------------------------




-----------------------------------------------------------------------
*** exim-4.01/src/expand.c  Mon Mar  4 10:03:42 2002
--- expand.c    Fri Mar  8 15:09:04 2002
***************
*** 1434,1440 ****
    s = read_name(name, sizeof(name), s, US"_");
    if (Ustrcmp(name, "fail") == 0)
      {
!     if (!yes)
        {
        while (isspace(*s)) s++;
        if (*s++ != '}') goto FAILED_CURLY;
--- 1434,1440 ----
    s = read_name(name, sizeof(name), s, US"_");
    if (Ustrcmp(name, "fail") == 0)
      {
!     if (!yes && !skipping)
        {
        while (isspace(*s)) s++;
        if (*s++ != '}') goto FAILED_CURLY;
-----------------------------------------------------------------------