diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2003-08-11 18:03:24 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2003-08-11 18:03:24 +0000 |
commit | 579062688199d76d7e4b093f6b5d990d7a9b25e9 (patch) | |
tree | 8655eddb089dcb94c68991b921da18cfa5cec9d6 /win32/sendmail.c | |
parent | 6d8305a2d376994556362707f45d8a400a3f1e5e (diff) | |
download | php-git-579062688199d76d7e4b093f6b5d990d7a9b25e9.tar.gz |
Fixed bug #22947 (Ack() inside win32/sendmail.c may stall in certain
situations).
Diffstat (limited to 'win32/sendmail.c')
-rw-r--r-- | win32/sendmail.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/win32/sendmail.c b/win32/sendmail.c index 82e8437a84..199a8f66df 100644 --- a/win32/sendmail.c +++ b/win32/sendmail.c @@ -883,11 +883,11 @@ int Ack(char **server_response) /* 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 */ |