Accept len modification fix. fixes: bug #770
authorNigel Metheringham <nigel@exim.org>
Fri, 12 Dec 2008 14:44:25 +0000 (14:44 +0000)
committerNigel Metheringham <nigel@exim.org>
Fri, 12 Dec 2008 14:44:25 +0000 (14:44 +0000)
doc/doc-txt/ChangeLog
src/src/daemon.c

index 09b9031ccb351e37fa67e5c4b132a71f640d0d1f..1e4774067b2e3f1ecada3d410b1c093b8e5b733b 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.557 2008/12/12 14:36:37 nm4 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.558 2008/12/12 14:44:25 nm4 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -80,6 +80,9 @@ NM/08 Fixed erroneous documentation references to smtp_notquit_acl to be
 NM/09 Bugzilla 787: Potential buffer overflow in string_format
       Patch provided by Eugene Bujak
 
+NM/10 Bugzilla 770: Problem on some platforms modifying the len parameter to accept()
+      Patch provided by Maxim Dounin
+
 
 Exim version 4.69
 -----------------
index 2413eaea5248f933b66c82b3eee669a156fbf61a..777cda6f4a42c41edbf39f50133e05ff504177f7 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/daemon.c,v 1.25 2008/01/28 18:24:07 fanf2 Exp $ */
+/* $Cambridge: exim/src/src/daemon.c,v 1.26 2008/12/12 14:44:25 nm4 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1613,7 +1613,7 @@ for (;;)
   struct sockaddr_in accepted;
   #endif
 
-  EXIM_SOCKLEN_T len = sizeof(accepted);
+  EXIM_SOCKLEN_T len;
   pid_t pid;
 
   /* This code is placed first in the loop, so that it gets obeyed at the
@@ -1808,6 +1808,7 @@ for (;;)
           {
           if (FD_ISSET(listen_sockets[sk], &select_listen))
             {
+            len = sizeof(accepted);
             accept_socket = accept(listen_sockets[sk],
               (struct sockaddr *)&accepted, &len);
             FD_CLR(listen_sockets[sk], &select_listen);