dbmail fails to pass last of search-sets' test:

ok uid search uid $uidnext:4294967295

because left and right values of the input range are incorrectly reassigned:

if (l == 0xffffffff) l = hi; // outlook
...
if (r == 0xffffffff) r = hi; // outlook
...
if (r > hi) r = hi;
if (r < lo) r = lo;

So, for example, if hi == 1601 and we execute following search:
ok uid search uid 1602:4294967295
then we get l == 1602 and r == 1601, so instead of empty result we get 1601, 
which is incorrect.

Possible workaround could be like this:

if (l == 0xffffffff && hi != l) l = hi+1; // outlook
...
if (r == 0xffffffff && hi != r) r = hi+1; // outlook
...
//if (r > hi) r = hi; // <--- throw away this code
//if (r < lo) r = lo; // <--- throw away this code
_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev

Reply via email to