From 2761e973f8a7d02e0fc8d3c40d661be6eddd7c5f Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 8 Apr 2022 14:28:14 +0100 Subject: [PATCH 1/3] Add missing ZPP checks --- ext/spl/spl_directory.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index f3d4fa2b92f7a..396440aeab57c 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -1399,6 +1399,9 @@ PHP_METHOD(SplFileInfo, __debugInfo) /* {{{ */ PHP_METHOD(SplFileInfo, _bad_state_ex) { + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } zend_throw_error(NULL, "The parent constructor was not called: the object is in an invalid state"); } /* }}} */ @@ -2476,6 +2479,10 @@ PHP_METHOD(SplFileObject, getCsvControl) spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); char delimiter[2], enclosure[2], escape[2]; + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + array_init(return_value); delimiter[0] = intern->u.file.delimiter; @@ -2517,6 +2524,10 @@ PHP_METHOD(SplFileObject, fflush) { spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); RETURN_BOOL(!php_stream_flush(intern->u.file.stream)); @@ -2528,6 +2539,10 @@ PHP_METHOD(SplFileObject, ftell) spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); zend_long ret; + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); ret = php_stream_tell(intern->u.file.stream); @@ -2562,6 +2577,10 @@ PHP_METHOD(SplFileObject, fgetc) char buf[2]; int result; + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); spl_filesystem_file_free_line(intern); @@ -2585,6 +2604,10 @@ PHP_METHOD(SplFileObject, fpassthru) { spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(ZEND_THIS); + if (zend_parse_parameters_none() == FAILURE) { + RETURN_THROWS(); + } + CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); RETURN_LONG(php_stream_passthru(intern->u.file.stream)); From cba498bd914b66308b41ed5795d7274e52a8c757 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 8 Apr 2022 17:06:56 +0100 Subject: [PATCH 2/3] Upgrading entry --- UPGRADING | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/UPGRADING b/UPGRADING index 2d76009808b07..3ff33623f59bf 100644 --- a/UPGRADING +++ b/UPGRADING @@ -27,6 +27,15 @@ PHP 8.2 UPGRADE NOTES array_change_key_case and sorting with SORT_FLAG_CASE use ASCII case conversion. +- SPL: + . The following methods of now enforce their signature: + * SplFileInfo::_bad_state_ex() + * SplFileObject::getCsvControl() + * SplFileObject::fflush() + * SplFileObject::ftell() + * SplFileObject::fgetc() + * SplFileObject::fpassthru() + ======================================== 2. New Features ======================================== From 5e3556912942f190ae2c2961c1a248acf6f65332 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 8 Apr 2022 17:57:22 +0100 Subject: [PATCH 3/3] skip-ci Fix UPGRADING wording MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Máté Kocsis --- UPGRADING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UPGRADING b/UPGRADING index 3ff33623f59bf..12cffeb9127e5 100644 --- a/UPGRADING +++ b/UPGRADING @@ -28,7 +28,7 @@ PHP 8.2 UPGRADE NOTES conversion. - SPL: - . The following methods of now enforce their signature: + . The following methods now enforce their signature: * SplFileInfo::_bad_state_ex() * SplFileObject::getCsvControl() * SplFileObject::fflush()