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