[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 ACKNOWLEDGMENTS exim/exim-src/src spool_in.c
ph10 2005/04/07 11:10:01 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src             ACKNOWLEDGMENTS 
    exim-src/src         spool_in.c 
  Log:
  Change 4.50/80 broke the handling of negative uids and gids in spool
  files. Negative gids are sometimes used. Allow for both to be negative.


  Revision  Changes    Path
  1.121     +4 -0      exim/exim-doc/doc-txt/ChangeLog
  1.22      +1 -0      exim/exim-src/ACKNOWLEDGMENTS
  1.10      +6 -5      exim/exim-src/src/spool_in.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.120
  retrieving revision 1.121
  diff -u -r1.120 -r1.121
  --- ChangeLog    7 Apr 2005 10:02:02 -0000    1.120
  +++ ChangeLog    7 Apr 2005 10:10:01 -0000    1.121
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.120 2005/04/07 10:02:02 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.121 2005/04/07 10:10:01 ph10 Exp $


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

   PH/33 Sieve envelope tests were broken for match types other than :is. I have
         applied a patch sanctioned by the Sieve maintainer.
  +
  +PH/34 Change 4.50/80 broke Exim in that it could no longer handle cases where
  +      the uid or gid is negative. A case of a negative gid caused this to be
  +      noticed. The fix allows for either to be negative.



A note about Exim versions 4.44 and 4.50

  Index: ACKNOWLEDGMENTS
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ACKNOWLEDGMENTS    7 Apr 2005 10:02:02 -0000    1.21
  +++ ACKNOWLEDGMENTS    7 Apr 2005 10:10:01 -0000    1.22
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.21 2005/04/07 10:02:02 ph10 Exp $
  +$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.22 2005/04/07 10:10:01 ph10 Exp $


EXIM ACKNOWLEDGEMENTS

  @@ -154,6 +154,7 @@
   Peter Ilieve              Suggested patch for lookup search bug
   John Jetmore              Writing and maintaining the 'exipick' utility
   Bob Johannessen           Patch for Sieve envelope tests bug
  +                          Patch for negative uid/gid bug
   Christian Kellner         Patch for LDAP dereferencing
   Alex Kiernan              Patch for libradius
                             Diagnosis of milliwait clock-backwards bug


  Index: spool_in.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/spool_in.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- spool_in.c    8 Mar 2005 15:32:02 -0000    1.9
  +++ spool_in.c    7 Apr 2005 10:10:01 -0000    1.10
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/spool_in.c,v 1.9 2005/03/08 15:32:02 tom Exp $ */
  +/* $Cambridge: exim/exim-src/src/spool_in.c,v 1.10 2005/04/07 10:10:01 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -323,9 +323,10 @@


/* The next three lines in the header file are in a fixed format. The first
contains the login, uid, and gid of the user who caused the file to be written.
-The second contains the mail address of the message's sender, enclosed in <>.
-The third contains the time the message was received, and the number of warning
-messages for delivery delays that have been sent. */
+There are known cases where a negative gid is used, so we allow for both
+negative uids and gids. The second contains the mail address of the message's
+sender, enclosed in <>. The third contains the time the message was received,
+and the number of warning messages for delivery delays that have been sent. */

if (Ufgets(big_buffer, big_buffer_size, f) == NULL) goto SPOOL_READ_ERROR;

@@ -333,12 +334,12 @@
while (p > big_buffer && isspace(p[-1])) p--;
*p = 0;
if (!isdigit(p[-1])) goto SPOOL_FORMAT_ERROR;
-while (p > big_buffer && isdigit(p[-1])) p--;
+while (p > big_buffer && (isdigit(p[-1]) || '-' == p[-1])) p--;
gid = Uatoi(p);
if (p <= big_buffer || *(--p) != ' ') goto SPOOL_FORMAT_ERROR;
*p = 0;
if (!isdigit(p[-1])) goto SPOOL_FORMAT_ERROR;
-while (p > big_buffer && isdigit(p[-1])) p--;
+while (p > big_buffer && (isdigit(p[-1]) || '-' == p[-1])) p--;
uid = Uatoi(p);
if (p <= big_buffer || *(--p) != ' ') goto SPOOL_FORMAT_ERROR;
*p = 0;