[exim] Re: Problems with ${if ..} conditions

Góra strony
Delete this message
Reply to this message
Autor: Nikolaus Rath
Data:  
Dla: exim-users
Temat: [exim] Re: Problems with ${if ..} conditions
Hello,

I did some further investigations and found out that the problem is
that in expand_string_internal, *left is correctly set:

1772        sub[i] = expand_string_internal(s+1, TRUE, &s, yield == NULL);
4451    if (left != NULL) *left = s;
(gdb) p *left
$7 = (uschar *) 0xbfbffc88 "}{b} {true}{false}}"


But the change doesn't propagate back into eval_condition:

(gdb) n
4458    DEBUG(D_expand)
(gdb) n
4464    return yield;
(gdb) n
0x80711b0       4488    }
(gdb) n
eval_condition (s=0xbfbffc86 "{a}{b} {true}{false}}", yield=0xbfbfec88)
    at expand.c:1773
1773        if (sub[i] == NULL) return NULL;
(gdb) p *s
$8 = 123 '{'



I don't know enough about C to decide if this a bug in exim which
happens do show only on this system or if its some obscure problem
with gcc or the kernel.


--Nikolaus

--
Ja zu der Rettung von dem Genitiv!