Sam, I thought this was fixed a few years ago, but it looks like this bug is still present in Courier 0.62.2.

sendmsg() is a standard libc function, and is also the name of a function in imap/outbox.c. Libraries which attempt to use libc's sendmsg, such as libselinux and libfam, may end up calling imapd's sendmsg instead, which causes imapd to segfault. Can you please rename this function?

--- imap/smap.c.sendmsg 2009-09-04 20:41:19.000000000 -0700
+++ imap/smap.c 2009-09-04 20:42:24.000000000 -0700
@@ -3496,8 +3496,8 @@
                                                }
                                                argvec[i]=0;
 
-                                               i=sendmsg(tmpname, argvec,
-                                                         &senderr);
+                                               i=imapd_sendmsg(tmpname, argvec,
+                                                               &senderr);
                                                free(argvec);
                                                if (i)
                                                {
--- imap/outbox.h.sendmsg       2009-09-04 20:41:22.000000000 -0700
+++ imap/outbox.h       2009-09-04 20:42:33.000000000 -0700
@@ -10,7 +10,7 @@
 
 int check_outbox(const char *message, const char *mailbox);
 int is_outbox(const char *mailbox);
-int sendmsg(const char *message, char **argv, void (*err_func)(char *));
+int imapd_sendmsg(const char *message, char **argv, void (*err_func)(char *));
 const char *defaultSendFrom();
 
 #endif
--- imap/outbox.c.sendmsg       2009-09-04 20:41:31.000000000 -0700
+++ imap/outbox.c       2009-09-04 20:42:53.000000000 -0700
@@ -92,10 +92,10 @@
                argv[5]=NULL;
        }
 
-       return (sendmsg(message, argv, errlogger));
+       return (imapd_sendmsg(message, argv, errlogger));
 }
 
-int sendmsg(const char *message, char **argv, void (*err_func)(char *))
+int imapd_sendmsg(const char *message, char **argv, void (*err_func)(char *))
 {
        char buffer[512];
        int i;
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
courier-users mailing list
[email protected]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to