cvs: php-src /ext/standard link.c
| From: | Ilia Alshanetsky | Date: | Tue, 02 Nov 2004 00:37:36 +0000 |
| Subject: | cvs: php-src /ext/standard link.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-29101@lists.php.net to get a copy of this message | ||
iliaa Mon Nov 1 19:37:36 2004 EDT
Modified files:
/php-src/ext/standard link.c
Log:
Fixed open_basedir & safe_mode bypass inside readlink() function.
http://cvs.php.net/diff.php/php-src/ext/standard/link.c?r1=1.49&r2=1.50&ty=u
Index: php-src/ext/standard/link.c
diff -u php-src/ext/standard/link.c:1.49 php-src/ext/standard/link.c:1.50
--- php-src/ext/standard/link.c:1.49 Sat Sep 25 10:23:32 2004
+++ php-src/ext/standard/link.c Mon Nov 1 19:37:32 2004
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: link.c,v 1.49 2004/09/25 14:23:32 hyanantha Exp $ */
+/* $Id: link.c,v 1.50 2004/11/02 00:37:32 iliaa Exp $ */
#include "php.h"
#include "php_filestat.h"
@@ -65,6 +65,14 @@
}
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;
+ }
+
ret = readlink(Z_STRVAL_PP(filename), buff, MAXPATHLEN-1);
if (ret == -1) {