[php-src] PR #23826: ext/libxml: reject changing the external entity loader while it is running
| From: | jvoisin | Date: | Mon, 21 Sep 2026 16:34:06 +0000 |
| Subject: | [php-src] PR #23826: ext/libxml: reject changing the external entity loader while it is running | ||
| Groups: | php.git-pulls | ||
| Request: | Send a blank email to git-pulls+get-38686@lists.php.net to get a copy of this message | ||
Pull Request: https://github.com/php/php-src/pull/23826
Author: jvoisin
The loader callback ran with a borrowed $this (non-closures are not ref-held by zend_call_function),
so re-registering the loader from within its own callback freed the executing callback and its bound
object, causing a use-after-free. Guard it with an in-callback flag and throw instead, as already
done in ext/curl, ext/sqlite3 and ext/xml.