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