[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim…

Góra strony
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
Dla: exim-cvs
Temat: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src exim.c version.c
ph10 2004/10/14 12:21:03 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         exim.c version.c 
  Log:
  Arrange to panic-die if setitimer() ever fails. Version number upped in
  readiness for next release.


  Revision  Changes    Path
  1.4       +4 -0      exim/exim-doc/doc-txt/ChangeLog
  1.2       +7 -2      exim/exim-src/src/exim.c
  1.2       +1 -1      exim/exim-src/src/version.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ChangeLog    11 Oct 2004 13:24:19 -0000    1.3
  +++ ChangeLog    14 Oct 2004 11:21:02 -0000    1.4
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.3 2004/10/11 13:24:19 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.4 2004/10/14 11:21:02 ph10 Exp $


Change log file for Exim from version 4.21
-------------------------------------------
@@ -11,6 +11,10 @@

    2. Change 4.43/35 introduced a bug: if quota_filecount was set, the
       computation of the current number of files was incorrect.
  +
  + 3. Closing a stable door: arrange to panic-die if setitimer() ever fails. The
  +    bug fixed in 4.43/37 would have been diagnosed quickly if this had been in
  +    place.



Exim version 4.43

  Index: exim.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/exim.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- exim.c    7 Oct 2004 10:39:01 -0000    1.1
  +++ exim.c    14 Oct 2004 11:21:02 -0000    1.2
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/exim.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/exim.c,v 1.2 2004/10/14 11:21:02 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -196,7 +196,10 @@


/* This function is called by millisleep() and exim_wait_tick() to wait for a
period of time that may include a fraction of a second. The coding is somewhat
-tedious...
+tedious. We do not expect setitimer() ever to fail, but if it does, the process
+will wait for ever, so we panic in this instance. (There was a case of this
+when a bug in a function that calls milliwait() caused it to pass invalid data.
+That's when I added the check. :-)

   Argument:  an itimerval structure containing the interval
   Returns:   nothing
  @@ -210,7 +213,9 @@
   (void)sigemptyset(&sigmask);                           /* Empty mask */
   (void)sigaddset(&sigmask, SIGALRM);                    /* Add SIGALRM */
   (void)sigprocmask(SIG_BLOCK, &sigmask, &old_sigmask);  /* Block SIGALRM */
  -(void)setitimer(ITIMER_REAL, itval, NULL);             /* Start timer */
  +if (setitimer(ITIMER_REAL, itval, NULL) < 0)           /* Start timer */
  +  log_write(0, LOG_MAIN|LOG_PANIC_DIE, 
  +    "setitimer() failed: %s", strerror(errno)); 
   (void)sigfillset(&sigmask);                            /* All signals */
   (void)sigdelset(&sigmask, SIGALRM);                    /* Remove SIGALRM */
   (void)sigsuspend(&sigmask);                            /* Until SIGALRM */


  Index: version.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/version.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- version.c    7 Oct 2004 10:39:01 -0000    1.1
  +++ version.c    14 Oct 2004 11:21:02 -0000    1.2
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/version.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/version.c,v 1.2 2004/10/14 11:21:02 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -12,7 +12,7 @@
   #include "exim.h"



-#define THIS_VERSION "4.43"
+#define THIS_VERSION "4.44"


/* The header file cnumber.h contains a single line containing the