cvs: php4 /ext/standard file.c

From: Date: Fri, 21 Dec 2001 08:04:23 +0000
Subject: cvs: php4 /ext/standard file.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-8743@lists.php.net to get a copy of this message
derick Fri Dec 21 03:04:23 2001 EDT Modified files: /php4/ext/standard file.c Log: - Added open basedir checks to file functions. (Patch by Christoph Kassen <chkassen@chkassen.de>) Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.202 php4/ext/standard/file.c:1.203 --- php4/ext/standard/file.c:1.202 Thu Dec 20 22:50:07 2001 +++ php4/ext/standard/file.c Fri Dec 21 03:04:21 2001 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.202 2001/12/21 03:50:07 elixer Exp $ */ +/* $Id: file.c,v 1.203 2001/12/21 08:04:21 derick Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -1463,10 +1463,15 @@ convert_to_long_ex(arg2); mode = (mode_t) Z_LVAL_PP(arg2); + if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(arg1), NULL, CHECKUID_ALLOW_ONLY_DIR))) { RETURN_FALSE; } + if (php_check_open_basedir(Z_STRVAL_PP(arg1) TSRMLS_CC)) { + RETURN_FALSE; + } + ret = VCWD_MKDIR(Z_STRVAL_PP(arg1), mode); if (ret < 0) { php_error(E_WARNING, "mkdir() failed (%s)", strerror(errno)); @@ -1488,10 +1493,15 @@ } convert_to_string_ex(arg1); + if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(arg1), NULL, CHECKUID_ALLOW_FILE_NOT_EXISTS))) { RETURN_FALSE; } + if (php_check_open_basedir(Z_STRVAL_PP(arg1) TSRMLS_CC)) { + RETURN_FALSE; + } + ret = VCWD_RMDIR(Z_STRVAL_PP(arg1)); if (ret < 0) { php_error(E_WARNING, "rmdir() failed (%s)", strerror(errno)); @@ -1695,6 +1705,11 @@ if (PG(safe_mode) &&(!php_checkuid(old_name, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { RETURN_FALSE; } + + if (php_check_open_basedir(old_name TSRMLS_CC)) { + RETURN_FALSE; + } + ret = VCWD_RENAME(old_name, new_name); if (ret == -1) { @@ -1719,6 +1734,10 @@ convert_to_string_ex(filename); if (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(filename), NULL, CHECKUID_CHECK_FILE_AND_DIR)) { + RETURN_FALSE; + } + + if (php_check_open_basedir(Z_STRVAL_PP(filename) TSRMLS_CC)) { RETURN_FALSE; }

« previous php.cvs (#8743) next »