tony2001 Sat Dec 29 10:52:24 2007 UTC Modified files: (Branch: PHP_5_3) /php-src/main/streams streams.c Log: correct fix for bug #43522 http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.82.2.6.2.18.2.2&r2=1.82.2.6.2.18.2.3&diff_format=u Index: php-src/main/streams/streams.c diff -u php-src/main/streams/streams.c:1.82.2.6.2.18.2.2 php-src/main/streams/streams.c:1.82.2.6.2.18.2.3 --- php-src/main/streams/streams.c:1.82.2.6.2.18.2.2 Mon Dec 10 14:16:57 2007 +++ php-src/main/streams/streams.c Sat Dec 29 10:52:24 2007 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.82.2.6.2.18.2.2 2007/12/10 14:16:57 iliaa Exp $ */ +/* $Id: streams.c,v 1.82.2.6.2.18.2.3 2007/12/29 10:52:24 tony2001 Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -859,10 +859,17 @@ if (delim_len == 0 || !delim) { toread = maxlen; } else { + size_t seek_len; + + seek_len = stream->writepos - stream->readpos; + if (seek_len > maxlen) { + seek_len = maxlen; + } + if (delim_len == 1) { - e = memchr(stream->readbuf + stream->readpos, *delim, maxlen); + e = memchr(stream->readbuf + stream->readpos, *delim, seek_len); } else { - e = php_memnstr(stream->readbuf + stream->readpos, delim, delim_len, (stream->readbuf + stream->readpos + maxlen)); + e = php_memnstr(stream->readbuf + stream->readpos, delim, delim_len, (stream->readbuf + stream->readpos + seek_len)); } if (!e) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php