------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
http://www.exim.org/bugzilla/show_bug.cgi?id=496
Summary: exim_fixdb can't edit ratelimit records
Product: Exim
Version: 4.66
Platform: All
OS/Version: Linux
Status: NEW
Severity: bug
Priority: medium
Component: Unfiled
AssignedTo: ph10@???
ReportedBy: ward@???
QAContact: exim-dev@???
Keys in the ratelimit db seem to contain spaces:
# exim_dumpdb /var/spool/exim4 ratelimit
16-Apr-2007 21:43:20.205018 rate: 2.754 key: 1h / strict / 10.0.0.5
16-Apr-2007 21:29:49.592824 rate: 0.000 key: 1d / leaky / 10.0.3.254
19-Apr-2007 02:34:24.917532 rate: 0.000 key: 1d / leaky / 10.166.210.84
19-Apr-2007 16:45:08.535817 rate: 10.247 key: 1d / leaky / 10.166.210.86
As a consequence, fixdb can't load the records:
# exim_fixdb /var/spool/exim4 ratelimit
Modifying Exim hints database /var/spool/exim4/db/ratelimit
> 1h / strict / 10.0.0.5
field number or d expected
This piece of code in src/exim_dbutils.c seems to be the problem:
if ((isdigit((uschar)buffer[0]) && (buffer[1] == ' ' || buffer[1] == '\0'))
|| Ustrcmp(buffer, "d") == 0)
{
if (name[0] == 0)
{
printf("No previous record name is set\n");
continue;
}
(void)sscanf(CS buffer, "%s %s", field, value);
}
else
{
name[0] = 0;
(void)sscanf(CS buffer, "%s %s %s", name, field, value);
}
I'm not sure what the best way to fix this would be.
I've tested this on 4.63, and the exim_dbutil.c file is identical in 4.67.
Thanks,
Ward.
--
Configure bugmail:
http://www.exim.org/bugzilla/userprefs.cgi?tab=email