felipe                                   Tue, 15 Nov 2011 16:59:59 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=319255

Log:
- Fixed bug #52624 (tempnam() by-pass open_basedir with inexistent directory)

Bug: https://bugs.php.net/52624 (Open) tempnam() in SAFE Mode
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/NEWS
    U   php/php-src/branches/PHP_5_3/ext/standard/file.c
    A   php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug52624.phpt
    U   php/php-src/branches/PHP_5_4/NEWS
    U   php/php-src/branches/PHP_5_4/ext/standard/file.c
    A   php/php-src/branches/PHP_5_4/ext/standard/tests/file/bug52624.phpt
    U   php/php-src/trunk/ext/standard/file.c
    A   php/php-src/trunk/ext/standard/tests/file/bug52624.phpt

Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2011-11-15 15:16:20 UTC (rev 319254)
+++ php/php-src/branches/PHP_5_3/NEWS   2011-11-15 16:59:59 UTC (rev 319255)
@@ -2,6 +2,10 @@
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2011, PHP 5.3.9

+- Core:
+  . Fixed bug #52624 (tempnam() by-pass open_basedir with inexistent 
directory).
+    (Felipe)
+
 - PHP-FPM SAPI:
   . Fixed bug #60179 (php_flag and php_value does not work properly). (fat)


Modified: php/php-src/branches/PHP_5_3/ext/standard/file.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/standard/file.c    2011-11-15 15:16:20 UTC 
(rev 319254)
+++ php/php-src/branches/PHP_5_3/ext/standard/file.c    2011-11-15 16:59:59 UTC 
(rev 319255)
@@ -876,7 +876,7 @@

        RETVAL_FALSE;

-       if ((fd = php_open_temporary_fd(dir, p, &opened_path TSRMLS_CC)) >= 0) {
+       if ((fd = php_open_temporary_fd_ex(dir, p, &opened_path, 1 TSRMLS_CC)) 
>= 0) {
                close(fd);
                RETVAL_STRING(opened_path, 0);
        }

Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug52624.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug52624.phpt          
                (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/bug52624.phpt  
2011-11-15 16:59:59 UTC (rev 319255)
@@ -0,0 +1,12 @@
+--TEST--
+Bug #52624 (tempnam() by-pass open_basedir with inexistent directory)
+--INI--
+open_basedir=.
+--FILE--
+<?php
+
+echo tempnam("directory_that_not_exists", "prefix_");
+
+?>
+--EXPECTF--
+Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not 
within the allowed path(s): (%s) in %s on line %d

Modified: php/php-src/branches/PHP_5_4/NEWS
===================================================================
--- php/php-src/branches/PHP_5_4/NEWS   2011-11-15 15:16:20 UTC (rev 319254)
+++ php/php-src/branches/PHP_5_4/NEWS   2011-11-15 16:59:59 UTC (rev 319255)
@@ -5,6 +5,8 @@
 - Core:
   . Fixed bug #60227 (header() cannot detect the multi-line header with
      CR(0x0D)). (rui)
+  . Fixed bug #52624 (tempnam() by-pass open_basedir with inexistent 
directory).
+    (Felipe)

 - OpenSSL:
   . Fixed bug #60279 (Fixed NULL pointer dereference in

Modified: php/php-src/branches/PHP_5_4/ext/standard/file.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/standard/file.c    2011-11-15 15:16:20 UTC 
(rev 319254)
+++ php/php-src/branches/PHP_5_4/ext/standard/file.c    2011-11-15 16:59:59 UTC 
(rev 319255)
@@ -819,7 +819,7 @@

        RETVAL_FALSE;

-       if ((fd = php_open_temporary_fd(dir, p, &opened_path TSRMLS_CC)) >= 0) {
+       if ((fd = php_open_temporary_fd_ex(dir, p, &opened_path, 1 TSRMLS_CC)) 
>= 0) {
                close(fd);
                RETVAL_STRING(opened_path, 0);
        }

Added: php/php-src/branches/PHP_5_4/ext/standard/tests/file/bug52624.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/standard/tests/file/bug52624.phpt          
                (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/standard/tests/file/bug52624.phpt  
2011-11-15 16:59:59 UTC (rev 319255)
@@ -0,0 +1,12 @@
+--TEST--
+Bug #52624 (tempnam() by-pass open_basedir with inexistent directory)
+--INI--
+open_basedir=.
+--FILE--
+<?php
+
+echo tempnam("directory_that_not_exists", "prefix_");
+
+?>
+--EXPECTF--
+Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not 
within the allowed path(s): (%s) in %s on line %d

Modified: php/php-src/trunk/ext/standard/file.c
===================================================================
--- php/php-src/trunk/ext/standard/file.c       2011-11-15 15:16:20 UTC (rev 
319254)
+++ php/php-src/trunk/ext/standard/file.c       2011-11-15 16:59:59 UTC (rev 
319255)
@@ -819,7 +819,7 @@

        RETVAL_FALSE;

-       if ((fd = php_open_temporary_fd(dir, p, &opened_path TSRMLS_CC)) >= 0) {
+       if ((fd = php_open_temporary_fd_ex(dir, p, &opened_path, 1 TSRMLS_CC)) 
>= 0) {
                close(fd);
                RETVAL_STRING(opened_path, 0);
        }

Added: php/php-src/trunk/ext/standard/tests/file/bug52624.phpt
===================================================================
--- php/php-src/trunk/ext/standard/tests/file/bug52624.phpt                     
        (rev 0)
+++ php/php-src/trunk/ext/standard/tests/file/bug52624.phpt     2011-11-15 
16:59:59 UTC (rev 319255)
@@ -0,0 +1,12 @@
+--TEST--
+Bug #52624 (tempnam() by-pass open_basedir with inexistent directory)
+--INI--
+open_basedir=.
+--FILE--
+<?php
+
+echo tempnam("directory_that_not_exists", "prefix_");
+
+?>
+--EXPECTF--
+Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not 
within the allowed path(s): (%s) in %s on line %d

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to