cvs: php-src(PHP_5_2) /ext/bz2 bz2.c /ext/zip zip_stream.c

From: Date: Wed, 14 Mar 2007 03:50:18 +0000
Subject: cvs: php-src(PHP_5_2) /ext/bz2 bz2.c /ext/zip zip_stream.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-43510@lists.php.net to get a copy of this message
iliaa Wed Mar 14 03:50:18 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/zip zip_stream.c /php-src/ext/bz2 bz2.c Log: Added missing open_basedir & safe_mode checks to zip:// and bzip:// wrappers. Issues idendtified by MOPB-20 and MOPB-21 http://cvs.php.net/viewvc.cgi/php-src/ext/zip/zip_stream.c?r1=1.1.2.3&r2=1.1.2.4&diff_format=u Index: php-src/ext/zip/zip_stream.c diff -u php-src/ext/zip/zip_stream.c:1.1.2.3 php-src/ext/zip/zip_stream.c:1.1.2.4 --- php-src/ext/zip/zip_stream.c:1.1.2.3 Sat Dec 23 23:28:39 2006 +++ php-src/ext/zip/zip_stream.c Wed Mar 14 03:50:18 2007 @@ -1,4 +1,4 @@ -/* $Id: zip_stream.c,v 1.1.2.3 2006/12/23 23:28:39 iliaa Exp $ */ +/* $Id: zip_stream.c,v 1.1.2.4 2007/03/14 03:50:18 iliaa Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -112,6 +112,10 @@ } if (filename) { + if ((PG(safe_mode) && (!php_checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(filename TSRMLS_CC)) { + return NULL; + } + /* duplicate to make the stream za independent (esp. for MSHUTDOWN) */ stream_za = zip_open(filename, ZIP_CREATE, &err); if (!stream_za) { @@ -189,6 +193,11 @@ php_basename(path, path_len - fragment_len, NULL, 0, &file_basename, &file_basename_len TSRMLS_CC); fragment++; + if ((PG(safe_mode) && (!php_checkuid(file_dirname, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(file_dirname TSRMLS_CC)) { + efree(file_basename); + return NULL; + } + za = zip_open(file_dirname, ZIP_CREATE, &err); if (za) { zf = zip_fopen(za, fragment, 0); http://cvs.php.net/viewvc.cgi/php-src/ext/bz2/bz2.c?r1=1.14.2.3.2.11&r2=1.14.2.3.2.12&diff_format=u Index: php-src/ext/bz2/bz2.c diff -u php-src/ext/bz2/bz2.c:1.14.2.3.2.11 php-src/ext/bz2/bz2.c:1.14.2.3.2.12 --- php-src/ext/bz2/bz2.c:1.14.2.3.2.11 Tue Mar 6 02:10:25 2007 +++ php-src/ext/bz2/bz2.c Wed Mar 14 03:50:18 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: bz2.c,v 1.14.2.3.2.11 2007/03/06 02:10:25 stas Exp $ */ +/* $Id: bz2.c,v 1.14.2.3.2.12 2007/03/14 03:50:18 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -225,6 +225,10 @@ #else path_copy = path; #endif + + if ((PG(safe_mode) && (!php_checkuid(path_copy, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(path_copy TSRMLS_CC)) { + return NULL; + } /* try and open it directly first */ bz_file = BZ2_bzopen(path_copy, mode); @@ -236,7 +240,7 @@ if (bz_file == NULL) { /* that didn't work, so try and get something from the network/wrapper */ - stream = php_stream_open_wrapper(path, mode, options | STREAM_WILL_CAST, opened_path); + stream = php_stream_open_wrapper(path, mode, options | STREAM_WILL_CAST | ENFORCE_SAFE_MODE, opened_path); if (stream) { int fd;

« previous php.cvs (#43510) next »