From 4a8e591a3177f4f90fd4554e1713615925a1c043 Mon Sep 17 00:00:00 2001 From: Jurijs Cerepanovs Date: Mon, 22 Jun 2026 17:17:20 +0300 Subject: [PATCH] Free cwd state in cwd_globals_dtor function Fix memleak on ZTS destructor --- Zend/zend_virtual_cwd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c index da27e9fd5426..9a6bad5a4d1b 100644 --- a/Zend/zend_virtual_cwd.c +++ b/Zend/zend_virtual_cwd.c @@ -166,6 +166,9 @@ static void realpath_cache_clean_helper(uint32_t max_entries, realpath_cache_buc static void cwd_globals_dtor(virtual_cwd_globals *cwd_g) /* {{{ */ { + if (cwd_g->cwd.cwd) { + CWD_STATE_FREE(&cwd_g->cwd); + } realpath_cache_clean_helper(sizeof(cwd_g->realpath_cache)/sizeof(cwd_g->realpath_cache[0]), cwd_g->realpath_cache, &cwd_g->realpath_cache_size); } /* }}} */