[php-src] master: Merge branch 'PHP-8.6'

From: Date: Sat, 24 Oct 2026 16:44:20 +0000
Subject: [php-src] master: Merge branch 'PHP-8.6'
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-142685@lists.php.net to get a copy of this message
Author: Gina Peter Banyard (Girgias) Date: 2026-10-24T17:44:02+01:00 Commit: https://github.com/php/php-src/commit/9e9c53fa06a8570793548aac5fa03f6ee8425afb Raw diff: https://github.com/php/php-src/commit/9e9c53fa06a8570793548aac5fa03f6ee8425afb.diff Merge branch 'PHP-8.6' * PHP-8.6: dba: fix GH-24641 (NULL dereferencement with ndbm backend) Changed paths: A ext/dba/tests/gh24641.phpt M ext/dba/dba_ndbm.c Diff: diff --git a/ext/dba/dba_ndbm.c b/ext/dba/dba_ndbm.c index c60ab7e5f428..8fd563857fd5 100644 --- a/ext/dba/dba_ndbm.c +++ b/ext/dba/dba_ndbm.c @@ -51,6 +51,9 @@ DBA_OPEN_FUNC(ndbm) } dbf = dbm_open(ZSTR_VAL(info->path), gmode, filemode); + if (dbf == NULL) { + return FAILURE; + } pinfo->dbf = dbf; return SUCCESS; diff --git a/ext/dba/tests/gh24641.phpt b/ext/dba/tests/gh24641.phpt new file mode 100644 index 000000000000..e7479b64333c --- /dev/null +++ b/ext/dba/tests/gh24641.phpt @@ -0,0 +1,30 @@ +--TEST-- +GH-24641 (ndbm backend never checks dbm_open() return value, NULL deref on first use after a failed open) +--EXTENSIONS-- +dba +--FILE-- +<?php + +file_put_contents(__DIR__ . '/gh24641', 'not a valid ndbm/gdbm database, just plain text'); + +foreach (dba_handlers() as $handler) { + /* Suppress warnings */ + $db = @dba_open(__DIR__ . '/gh24641', 'r', $handler); + /* Expected as this file is not a proper db file */ + if ($db === false) { + continue; + } + /* Some drivers just don't care */ + dba_firstkey($db); // SEGV + dba_close($db); +} + +?> +DONE +--CLEAN-- +<?php +@unlink(__DIR__ . '/gh24641'); +@unlink(__DIR__ . '/gh24641-lock'); +?> +--EXPECT-- +DONE

« previous php.cvs (#142685) next »