summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorEtienne Kneuss <colder@php.net>2008-06-18 10:05:29 +0000
committerEtienne Kneuss <colder@php.net>2008-06-18 10:05:29 +0000
commit4e80cf8bac2dd579486257d70e8b33be2b0ba659 (patch)
tree1f7f8bf63fad9d39b3f1ee31c3997f29172a1e26 /ext
parent5429bfb51861786efa13a1edb741ed4b4e4970fd (diff)
downloadphp-git-4e80cf8bac2dd579486257d70e8b33be2b0ba659.tar.gz
MFH: Fix #45216 (Add a default size for fgetss)
Diffstat (limited to 'ext')
-rwxr-xr-xext/spl/spl_directory.c7
-rw-r--r--ext/spl/tests/bug45216.phpt22
2 files changed, 28 insertions, 1 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index c0ddb9f1d4..9d1a71d56b 100755
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -2295,7 +2295,12 @@ SPL_METHOD(SplFileObject, fgetss)
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zval *arg2 = NULL;
MAKE_STD_ZVAL(arg2);
- ZVAL_LONG(arg2, intern->u.file.max_line_len);
+
+ if (intern->u.file.max_line_len > 0) {
+ ZVAL_LONG(arg2, intern->u.file.max_line_len);
+ } else {
+ ZVAL_LONG(arg2, 1024);
+ }
spl_filesystem_file_free_line(intern TSRMLS_CC);
intern->u.file.current_line_num++;
diff --git a/ext/spl/tests/bug45216.phpt b/ext/spl/tests/bug45216.phpt
new file mode 100644
index 0000000000..b3c4aa51bf
--- /dev/null
+++ b/ext/spl/tests/bug45216.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SPL: SplFileObject::fgetss (bug 45216)
+--CREDITS--
+Perrick Penet <perrick@noparking.net>
+#testfest phpcampparis 2008-06-07
+--FILE--
+<?php
+$file = dirname(__FILE__) . '/foo.html';
+file_put_contents($file, 'text 0<div class="tested">text 1</div>');
+$handle = fopen($file, 'r');
+
+$object = new SplFileObject($file);
+var_dump($object->fgetss());
+var_dump(fgetss($handle));
+?>
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/foo.html');
+?>
+--EXPECTF--
+string(12) "text 0text 1"
+string(12) "text 0text 1"