lbarnaud                Tue Nov 11 00:45:36 2008 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/standard/tests/streams bug44818.phpt 

  Modified files:              
    /php-src/ext/standard       php_fopen_wrapper.c 
    /php-src    NEWS 
  Log:
  MFH: Fixed bug #44818 (php://memory writeable when opened read only)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/php_fopen_wrapper.c?r1=1.45.2.4.2.10&r2=1.45.2.4.2.11&diff_format=u
Index: php-src/ext/standard/php_fopen_wrapper.c
diff -u php-src/ext/standard/php_fopen_wrapper.c:1.45.2.4.2.10 
php-src/ext/standard/php_fopen_wrapper.c:1.45.2.4.2.11
--- php-src/ext/standard/php_fopen_wrapper.c:1.45.2.4.2.10      Tue Nov  4 
21:05:55 2008
+++ php-src/ext/standard/php_fopen_wrapper.c    Tue Nov 11 00:45:36 2008
@@ -17,7 +17,7 @@
    |          Hartmut Holzgraefe <[EMAIL PROTECTED]>                       |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_fopen_wrapper.c,v 1.45.2.4.2.10 2008/11/04 21:05:55 lbarnaud Exp $ 
*/
+/* $Id: php_fopen_wrapper.c,v 1.45.2.4.2.11 2008/11/11 00:45:36 lbarnaud Exp $ 
*/
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -176,11 +176,21 @@
                                return NULL;
                        }
                }
-               return php_stream_temp_create(TEMP_STREAM_DEFAULT, max_memory); 
        
+               if (strpbrk(mode, "wa+")) {
+                       mode_rw = TEMP_STREAM_DEFAULT;
+               } else {
+                       mode_rw = TEMP_STREAM_READONLY;
+               }
+               return php_stream_temp_create(mode_rw, max_memory);             
        }
        
        if (!strcasecmp(path, "memory")) {
-               return php_stream_memory_create(TEMP_STREAM_DEFAULT);
+               if (strpbrk(mode, "wa+")) {
+                       mode_rw = TEMP_STREAM_DEFAULT;
+               } else {
+                       mode_rw = TEMP_STREAM_READONLY;
+               }
+               return php_stream_memory_create(mode_rw);
        }
        
        if (!strcasecmp(path, "output")) {
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1309&r2=1.2027.2.547.2.1310&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1309 php-src/NEWS:1.2027.2.547.2.1310
--- php-src/NEWS:1.2027.2.547.2.1309    Sun Nov  9 11:39:27 2008
+++ php-src/NEWS        Tue Nov 11 00:45:36 2008
@@ -6,6 +6,7 @@
 
 - Fixed bug #46521 (Curl ZTS OpenSSL, error in config.m4 fragment).
   (jd at cpanel dot net)
+- Fixed bug #44818 (php://memory writeable when opened read only). (Arnaud)
 - Fixed bug #30312 (sybase_unbuffered_query calls). (Timm)
 
 06 Nov 2008, PHP 5.2.7RC3

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/streams/bug44818.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/streams/bug44818.phpt
+++ php-src/ext/standard/tests/streams/bug44818.phpt
--TEST--
Bug #44818 (php://memory writeable when opened read only)
--FILE--
<?php
function test($url, $mode) {
        echo "$url, $mode\n";
        $fd = fopen($url, $mode);
        var_dump($fd, fwrite($fd, b"foo"));
        var_dump(fseek($fd, 0, SEEK_SET), fread($fd, 3));
        fclose($fd);
}
test("php://memory","r");
test("php://memory","r+");
test("php://temp","r");
test("php://temp","w");
?>
--EXPECTF--
php://memory, r
resource(%d) of type (stream)
int(0)
int(0)
string(0) ""
php://memory, r+
resource(%d) of type (stream)
int(3)
int(0)
string(3) "foo"
php://temp, r
resource(%d) of type (stream)
int(0)
int(0)
string(0) ""
php://temp, w
resource(%d) of type (stream)
int(3)
int(0)
string(3) "foo"



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

Reply via email to