iliaa Mon Aug 11 14:03:24 2003 EDT Modified files: /php-src/win32 sendmail.c Log: Fixed bug #22947 (Ack() inside win32/sendmail.c may stall in certain situations). Index: php-src/win32/sendmail.c diff -u php-src/win32/sendmail.c:1.56 php-src/win32/sendmail.c:1.57 --- php-src/win32/sendmail.c:1.56 Mon Aug 11 12:37:32 2003 +++ php-src/win32/sendmail.c Mon Aug 11 14:03:24 2003 @@ -17,7 +17,7 @@ * */ -/* $Id: sendmail.c,v 1.56 2003/08/11 16:37:32 iliaa Exp $ */ +/* $Id: sendmail.c,v 1.57 2003/08/11 18:03:24 iliaa Exp $ */ #include "php.h" /*php specific */ #include <stdio.h> @@ -883,11 +883,11 @@ /* Check for newline */ Index += rlen; - if ((buf[Received - 4] == ' ' && buf[Received - 3] == '-') || - (buf[Received - 2] != '\r') || (buf[Received - 1] != '\n')) - /* err_msg fprintf(stderr,"Incomplete server message. Awaiting CRLF\n"); */ - goto again; /* Incomplete data. Line must be terminated by CRLF - And not contain a space followed by a '-' */ + /* SMPT RFC says \r\n is the only valid line ending, who are we to argue ;) + * The response code must contain at least 5 characters ex. 220\r\n */ + if (Received < 5 || buf[Received - 1] != '\n' || buf[Received - 2] != '\r') { + goto again; + } if (buf[0] > '3') { /* If we've a valid pointer, return the SMTP server response so the error message contains more information */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php