Commit 1f397a9488c for php.net

commit 1f397a9488c0a7f7f56450f8fa8eb0a952c941f8
Merge: 6e14f88bb4b 0b0784a66e4
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date:   Wed Sep 16 09:03:40 2026 -0400

    Merge branch 'PHP-8.5'

    * PHP-8.5:
      ext/sqlite3: reject close() from inside a callback

diff --cc NEWS
index bbac9779425,76e317006c0..220ecbfb11f
--- a/NEWS
+++ b/NEWS
@@@ -40,16 -34,12 +40,20 @@@ PH
  - PGSQL:
    . Fixed pg_lo_write() rejecting data containing null bytes. (Ilia Alshanetsky)

 +- SPL:
 +  . Fixed bug GH-23385 (SplDoublyLinkedList::serialize() use-after-free when
 +    __serialize() removes an element). (David Carlier)
 +
+ - SQLite:
+   . Fixed a crash when SQLite3::close() is called from a userland callback.
+     (Ilia Alshanetsky)
+
 +- Standard:
 +  . Fixed bug #60110 (fclose(), file_put_contents(), copy() do not return false
 +    properly). (Jakub Zelenka, Ilija Tovilo)
 +

 -24 Sep 2026, PHP 8.5.11
 +10 Sep 2026, PHP 8.6.0beta3

  - BCMath:
    . Fixed out-of-bounds read in bc_is_zero_for_scale() when scale exceeds
diff --cc ext/sqlite3/sqlite3.c
index 45918923c1c,c6898aedc1b..4698fe5cd09
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@@ -184,9 -190,15 +184,13 @@@ PHP_METHOD(SQLite3, close
  	int errcode;
  	db_obj = Z_SQLITE3_DB_P(object);

 -	if (zend_parse_parameters_none() == FAILURE) {
 -		RETURN_THROWS();
 -	}
 +	ZEND_PARSE_PARAMETERS_NONE();

  	if (db_obj->initialised) {
+ 		if (db_obj->in_callback) {
+ 			zend_throw_error(NULL, "Cannot close SQLite3 database while inside a callback");
+ 			RETURN_THROWS();
+ 		}
  		zend_llist_clean(&(db_obj->free_list));
  		if(db_obj->db) {
  			errcode = sqlite3_close(db_obj->db);