]> granicus.if.org Git - php/commitdiff
Added missing safe_mode checks.
authorIlia Alshanetsky <iliaa@php.net>
Thu, 6 Oct 2005 20:37:25 +0000 (20:37 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 6 Oct 2005 20:37:25 +0000 (20:37 +0000)
ext/curl/interface.c
ext/gd/gd.c
ext/gd/gd_ctx.c

index 5da8efb96b537ae37306d3aff46fc2978f32e48b..7a70093db3f2c8f70e87b09ab4de0dce3ee9024b 100644 (file)
@@ -65,7 +65,7 @@ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC);
 #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v);
 
 #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len)                                                                                                  \
-       if (PG(open_basedir) && *PG(open_basedir) &&                                                \
+       if (((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) &&                                                \
            strncasecmp(str, "file://", sizeof("file://") - 1) == 0)                                                            \
        {                                                                                                                                                                                       \
                php_url *tmp_url;                                                                                                                                               \
index 0bd96eb98a342839d39bb932272004eb3b22dde5..361076dc4c2365c35a71e7b3f7cd552cb9ca5d2c 100644 (file)
@@ -1709,7 +1709,7 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
        }
 
        if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
-               if (!fn || php_check_open_basedir(fn TSRMLS_CC)) {
+               if (!fn || php_check_open_basedir(fn TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(fn, "rb+", CHECKUID_CHECK_FILE_AND_DIR))) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn);
                        RETURN_FALSE;
                }
index bf7355cb2d03654a4e4490adb49829963601cc30..99cf87a17061b1c1a16be5c9325c3788f5d06d44 100644 (file)
@@ -82,7 +82,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
        }
 
        if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) {
-               if (!fn || php_check_open_basedir(fn TSRMLS_CC)) {
+               if (!fn || php_check_open_basedir(fn TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(fn, "rb+", CHECKUID_CHECK_FILE_AND_DIR))) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn);
                        RETURN_FALSE;
                }