mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-17938: UAF with zend_test opline observer and magic_quotes_gpc=1 (#17958)
This commit is contained in:
commit
0097ad8eb3
1 changed files with 12 additions and 4 deletions
|
@ -697,6 +697,15 @@ void * zend_test_custom_realloc(void * ptr, size_t len ZEND_FILE_LINE_DC ZEND_FI
|
|||
return _zend_mm_realloc(ZT_G(zend_orig_heap), ptr, len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC);
|
||||
}
|
||||
|
||||
static void zend_test_reset_heap(zend_zend_test_globals *zend_test_globals)
|
||||
{
|
||||
if (zend_test_globals->zend_test_heap) {
|
||||
free(zend_test_globals->zend_test_heap);
|
||||
zend_test_globals->zend_test_heap = NULL;
|
||||
zend_mm_set_heap(zend_test_globals->zend_orig_heap);
|
||||
}
|
||||
}
|
||||
|
||||
static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
|
||||
{
|
||||
if (new_value == NULL) {
|
||||
|
@ -718,10 +727,8 @@ static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
|
|||
);
|
||||
ZT_G(zend_orig_heap) = zend_mm_get_heap();
|
||||
zend_mm_set_heap(ZT_G(zend_test_heap));
|
||||
} else if (ZT_G(zend_test_heap)) {
|
||||
free(ZT_G(zend_test_heap));
|
||||
ZT_G(zend_test_heap) = NULL;
|
||||
zend_mm_set_heap(ZT_G(zend_orig_heap));
|
||||
} else {
|
||||
zend_test_reset_heap(ZEND_MODULE_GLOBALS_BULK(zend_test));
|
||||
}
|
||||
return OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage);
|
||||
}
|
||||
|
@ -1387,6 +1394,7 @@ static PHP_GINIT_FUNCTION(zend_test)
|
|||
static PHP_GSHUTDOWN_FUNCTION(zend_test)
|
||||
{
|
||||
zend_test_observer_gshutdown(zend_test_globals);
|
||||
zend_test_reset_heap(zend_test_globals);
|
||||
}
|
||||
|
||||
PHP_MINFO_FUNCTION(zend_test)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue