tony2001 Wed Jun 21 13:12:37 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/bz2 bz2.c Log: MFH: don't try to read or write from/to a stream if it was open in different mode (leads to segfault in libbz2) http://cvs.php.net/viewvc.cgi/php-src/ext/bz2/bz2.c?r1=1.14.2.3.2.2&r2=1.14.2.3.2.3&diff_format=u Index: php-src/ext/bz2/bz2.c diff -u php-src/ext/bz2/bz2.c:1.14.2.3.2.2 php-src/ext/bz2/bz2.c:1.14.2.3.2.3 --- php-src/ext/bz2/bz2.c:1.14.2.3.2.2 Wed Jun 21 12:43:27 2006 +++ php-src/ext/bz2/bz2.c Wed Jun 21 13:12:37 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: bz2.c,v 1.14.2.3.2.2 2006/06/21 12:43:27 tony2001 Exp $ */ +/* $Id: bz2.c,v 1.14.2.3.2.3 2006/06/21 13:12:37 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -384,6 +384,18 @@ php_stream_from_zval(stream, file); + if (!memchr(stream->mode, Z_STRVAL_PP(mode)[0], strlen(stream->mode))) { + switch (Z_STRVAL_PP(mode)[0]) { + case 'r': + php_error_docref(NULL TSRMLS_CC, E_WARNING, "cannot read from a stream opened in write only mode"); + break; + case 'w': + php_error_docref(NULL TSRMLS_CC, E_WARNING, "cannot write to a stream opened in read only mode"); + break; + } + RETURN_FALSE; + } + if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_FD, (void *) &fd, REPORT_ERRORS)) { RETURN_FALSE; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php