From 8aa124cd11e5c59e2d3e31c33f5aae5567aab2b9 Mon Sep 17 00:00:00 2001 From: ndossche <7771979+ndossche@users.noreply.github.com> Date: Mon, 9 Nov 2026 19:02:07 +0100 Subject: [PATCH] Fix GH-25306: Assertion status == LXB_STATUS_OK in dom_parse_selector when lexbor allocation fails --- ext/dom/parentnode/css_selectors.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ext/dom/parentnode/css_selectors.c b/ext/dom/parentnode/css_selectors.c index 43012c4ebb99..8dd483ff0b62 100644 --- a/ext/dom/parentnode/css_selectors.c +++ b/ext/dom/parentnode/css_selectors.c @@ -83,11 +83,15 @@ static lxb_css_selector_list_t *dom_parse_selector( memset(parser, 0, sizeof(lxb_css_parser_t)); status = lxb_css_parser_init(parser, NULL); - ZEND_ASSERT(status == LXB_STATUS_OK); + if (UNEXPECTED(status != LXB_STATUS_OK)) { + return NULL; + } memset(selectors, 0, sizeof(lxb_selectors_t)); status = lxb_selectors_init(selectors); - ZEND_ASSERT(status == LXB_STATUS_OK); + if (UNEXPECTED(status != LXB_STATUS_OK)) { + return NULL; + } lxb_selectors_opt_set(selectors, dom_quirks_opt(options, intern)); lxb_css_selector_list_t *list = lxb_css_selectors_parse(parser, (const lxb_char_t *) ZSTR_VAL(selectors_str), ZSTR_LEN(selectors_str));