ports/137257: [patch] mail/exim: fix dbm->seq loop
Artis Caune
Artis.Caune at gmail.com
Thu Jul 30 07:30:11 UTC 2009
>Number: 137257
>Category: ports
>Synopsis: [patch] mail/exim: fix dbm->seq loop
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jul 30 07:30:08 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Artis Caune
>Release: current
>Organization:
>Environment:
FreeBSD 8.0-BETA2 #0 r195825: Wed Jul 22 23:15:57 EEST 2009 root at builder:/usr/obj/usr/src/sys/FREEBSD
>Description:
exim is using flag 0 instead of R_NEXT in dbm->seq() function call. After r190491 it's not working anymore and is looping.
see: http://lists.exim.org/lurker/message/20090729.134711.ef8c803e.en.html
>How-To-Repeat:
- update to current > r190491
- install exim
- send some messages, so retry or misc-* db are created and are not empty
- wait for periodic exim_tidydb
or
- run exim_tidydb /var/spool/exim retry
process is killed, because out of swap space
>Fix:
put attached patch in /usr/ports/mail/exim/files and rebuild exim
Patch attached with submission follows:
--- src/dbstuff.h.orig 2007-08-29 14:02:22.000000000 +0000
+++ src/dbstuff.h 2009-07-30 07:11:20.033795649 +0000
@@ -331,7 +331,7 @@
/* EXIM_DBSCAN - returns TRUE if data is returned, FALSE at end */
#define EXIM_DBSCAN(db, key, data, first, cursor) \
- ((db)->seq(db, &key, &data, (first? R_FIRST : 0)) == 0)
+ ((db)->seq(db, &key, &data, (first? R_FIRST : R_NEXT)) == 0)
/* EXIM_DBDELETE_CURSOR - terminate scanning operation (null). Make it
refer to cursor, to keep picky compilers happy. */
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list