Commit:    ad976d82405ad25fb424328c5b9bdca7b734cca4
Author:    Nikita Popov <ni...@php.net>         Thu, 12 Sep 2013 17:46:14 +0200
Parents:   165f544ae9a3ac674a533a45ad8a8d5dccfa2536
Branches:  PHP-5.5

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=ad976d82405ad25fb424328c5b9bdca7b734cca4

Log:
Fix bug #64782: SplFileObject constructor make $context optional

Bugs:
https://bugs.php.net/64782

Changed paths:
  M  NEWS
  M  ext/spl/spl_directory.c
  A  ext/spl/tests/bug64782.phpt


Diff:
diff --git a/NEWS b/NEWS
index 22cd012..c907c1b 100644
--- a/NEWS
+++ b/NEWS
@@ -59,6 +59,10 @@ PHP                                                          
              NEWS
   . Fixed bug #51127/#65359 Request #25630/#43980/#54383 (Added php_serialize 
     session serialize handler that uses plain serialize()). (Yasuo)
 
+- SPL:
+  . Fix bug #64782 (SplFileObject constructor make $context optional / give it
+    a default value). (Nikita)
+
 - Standard:
   . Fix issue with return types of password API helper functions. Found via 
static
     analysis by cjones. (Anthony Ferrara) 
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index 1a417d0..3dc7b79 100644
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -2290,7 +2290,7 @@ SPL_METHOD(SplFileObject, __construct)
        intern->u.file.open_mode = NULL;
        intern->u.file.open_mode_len = 0;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|sbr", 
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|sbr!", 
                        &intern->file_name, &intern->file_name_len,
                        &intern->u.file.open_mode, 
&intern->u.file.open_mode_len, 
                        &use_include_path, &intern->u.file.zcontext) == 
FAILURE) {              
diff --git a/ext/spl/tests/bug64782.phpt b/ext/spl/tests/bug64782.phpt
new file mode 100644
index 0000000..2b225cd
--- /dev/null
+++ b/ext/spl/tests/bug64782.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Bug #64782: SplFileObject constructor make $context optional / give it a 
default value
+--FILE--
+<?php
+
+var_dump(new SplFileObject(__FILE__, "r", false, null));
+
+?>
+--EXPECTF--
+object(SplFileObject)#1 (%d) {
+  ["pathName":"SplFileInfo":private]=>
+  string(50) "%s/bug64782.php"
+  ["fileName":"SplFileInfo":private]=>
+  string(12) "bug64782.php"
+  ["openMode":"SplFileObject":private]=>
+  string(1) "r"
+  ["delimiter":"SplFileObject":private]=>
+  string(1) ","
+  ["enclosure":"SplFileObject":private]=>
+  string(1) """
+}


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

Reply via email to