diff options
Diffstat (limited to 'ext/standard/link.c')
-rw-r--r-- | ext/standard/link.c | 47 |
1 files changed, 3 insertions, 44 deletions
diff --git a/ext/standard/link.c b/ext/standard/link.c index b75441879..3691002aa 100644 --- a/ext/standard/link.c +++ b/ext/standard/link.c @@ -47,7 +47,6 @@ #include <errno.h> #include <ctype.h> -#include "safe_mode.h" #include "php_link.h" #include "php_string.h" @@ -64,14 +63,6 @@ PHP_FUNCTION(readlink) return; } - if (strlen(link) != link_len) { - RETURN_FALSE; - } - - if (PG(safe_mode) && !php_checkuid(link, NULL, CHECKUID_CHECK_FILE_AND_DIR)) { - RETURN_FALSE; - } - if (php_check_open_basedir(link TSRMLS_CC)) { RETURN_FALSE; } @@ -98,7 +89,7 @@ PHP_FUNCTION(linkinfo) struct stat sb; int ret; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &link, &link_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p", &link, &link_len) == FAILURE) { return; } @@ -124,17 +115,9 @@ PHP_FUNCTION(symlink) char dirname[MAXPATHLEN]; size_t len; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &topath, &topath_len, &frompath, &frompath_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "pp", &topath, &topath_len, &frompath, &frompath_len) == FAILURE) { return; } - - if (strlen(topath) != topath_len) { - RETURN_FALSE; - } - - if (strlen(frompath) != frompath_len) { - RETURN_FALSE; - } if (!expand_filepath(frompath, source_p TSRMLS_CC)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "No such file or directory"); @@ -156,14 +139,6 @@ PHP_FUNCTION(symlink) RETURN_FALSE; } - if (PG(safe_mode) && !php_checkuid(dest_p, NULL, CHECKUID_CHECK_FILE_AND_DIR)) { - RETURN_FALSE; - } - - if (PG(safe_mode) && !php_checkuid(source_p, NULL, CHECKUID_CHECK_FILE_AND_DIR)) { - RETURN_FALSE; - } - if (php_check_open_basedir(dest_p TSRMLS_CC)) { RETURN_FALSE; } @@ -196,18 +171,10 @@ PHP_FUNCTION(link) char source_p[MAXPATHLEN]; char dest_p[MAXPATHLEN]; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &topath, &topath_len, &frompath, &frompath_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "pp", &topath, &topath_len, &frompath, &frompath_len) == FAILURE) { return; } - if (strlen(topath) != topath_len) { - RETURN_FALSE; - } - - if (strlen(frompath) != frompath_len) { - RETURN_FALSE; - } - if (!expand_filepath(frompath, source_p TSRMLS_CC) || !expand_filepath(topath, dest_p TSRMLS_CC)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "No such file or directory"); RETURN_FALSE; @@ -220,14 +187,6 @@ PHP_FUNCTION(link) RETURN_FALSE; } - if (PG(safe_mode) && !php_checkuid(dest_p, NULL, CHECKUID_CHECK_FILE_AND_DIR)) { - RETURN_FALSE; - } - - if (PG(safe_mode) && !php_checkuid(source_p, NULL, CHECKUID_CHECK_FILE_AND_DIR)) { - RETURN_FALSE; - } - if (php_check_open_basedir(dest_p TSRMLS_CC)) { RETURN_FALSE; } |