Skip to content

Commit 4cd6d38

Browse files
committed
Fix #78976: SplFileObject::fputcsv returns -1 on failure
`php_stream_write()` returns `-1` on failure now, which has to be catered to by `SplFileObject::fputcsv()` which still is supposed to return `false` on failure.
1 parent e45b613 commit 4cd6d38

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ PHP NEWS
1515
. Fixed bug #78903 (Conflict in RTD key for closures results in crash).
1616
(Nikita)
1717

18+
- Spl:
19+
. Fixed bug #78976 (SplFileObject::fputcsv returns -1 on failure). (cmb)
20+
1821
19 Dec 2019, PHP 7.4.1
1922

2023
- Core:

ext/spl/spl_directory.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2668,6 +2668,9 @@ SPL_METHOD(SplFileObject, fputcsv)
26682668
break;
26692669
}
26702670
ret = php_fputcsv(intern->u.file.stream, fields, delimiter, enclosure, escape);
2671+
if (ret < 0) {
2672+
RETURN_FALSE;
2673+
}
26712674
RETURN_LONG(ret);
26722675
}
26732676
}

ext/spl/tests/bug78976.phpt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
--TEST--
2+
Bug #78976 (SplFileObject::fputcsv returns -1 on failure)
3+
--FILE--
4+
<?php
5+
$file = new SplFileObject('php://memory', 'r');
6+
var_dump($file->fputcsv(['foo', 'bar']));
7+
?>
8+
--EXPECT--
9+
bool(false)

0 commit comments

Comments
 (0)