On Tue, 16 Jul 2002, Nico Erfurth wrote:
> This should fix the problem for 4.05, at least i think so, it adds a
> syntax-check,
> so the macro-definition MUST start with a alphanumeric-character.
No, that isn't the right fix, I'm afraid. It would cause Exim to take
the next argument as the data for -D when -D was not followed by an
alphanumeric character. This is the right fix (also includes a minor
formatting typo):
*** 1197,1206 ****
s++;
}
name[ptr] = 0;
while (isspace(*s)) s++;
if (*s == 0)
{
! if(++i < argc) s = argv[i]; else
{ badarg = TRUE; break; }
}
if (*s++ != '=') { badarg = TRUE; break; }
--- 1197,1207 ----
s++;
}
name[ptr] = 0;
+ if (ptr == 0) { badarg = TRUE; break; }
while (isspace(*s)) s++;
if (*s == 0)
{
! if (++i < argc) s = argv[i]; else
{ badarg = TRUE; break; }
}
if (*s++ != '=') { badarg = TRUE; break; }
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.