著者: Nico Erfurth 日付: To: Dean Brooks CC: exim-users 題目: Re: [Exim] 4.11 dbm lookups failing
Dean Brooks wrote: > Hi,
>
> Installed 4.11 on a live production server this morning (okay, I'm gutsy).
>
> Thought everything was running ok, until I realized that none of our
> virtual domains were working correctly. Turns out that 4.11 was
> treating our "dbm" lookups as "dbmnz". All our local dbm lookups were
> failing as a result.
I posted about this yesterday (but it was related to nis then):
Well, this bug seems to be lurking around since a long time, and now it
showed up.
src/search.c has a bug in
search_findtype(uschar *name, int len)
the search starts like this
while (top > bot)
{
int mid = (top + bot)/2;
int c = Ustrncmp(name, lookup_list[mid].name, len);
looks fine for the first look, BUT, if you try to find the nis lookup it
fails (or it will pick nisplus), because the "nis" part of nisplus
matches. I think this bug showed up now, because of the new lookup-type,
so the search first hits "nisplus" before coming to "nis"
changing this (line 68)
int c = Ustrncmp(name, lookup_list[mid].name, len);