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