Bug #79250 [Opn]: EG(current_module) NULL during property declaration

From: Date: Mon, 10 Feb 2020 11:33:14 +0000
Subject: Bug #79250 [Opn]: EG(current_module) NULL during property declaration
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-225475@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79250&edit=1 ID: 79250 Updated by: nikic@php.net Reported by: KseniMailWOW at gmail dot com -Summary: PHP7.4+ +Summary: EG(current_module) NULL during property declaration Status: Open Type: Bug Package: Class/Object related Operating System: All (Windows7+) PHP Version: 7.4.3RC1 Block user comment: N Private report: N New Comment: Your link does not show a use of zend_declare_property_*. Can you please show at which point you execute this call? Previous Comments: ------------------------------------------------------------------------ [2020-02-10 11:23:52] KseniMailWOW at gmail dot com The following patch has been added/updated: Patch Name: ErrorCorrectingFunction Revision: 1581333832 URL: https://bugs.php.net/patch-display.php?bug=79250&patch=ErrorCorrectingFunction&revision=1581333832 ------------------------------------------------------------------------ [2020-02-10 11:21:16] KseniMailWOW at gmail dot com Description: ------------ Semple PHP initialization https://pastebin.com/64XuRa4k Calling zend_declare_property_* results in an empty memory access error (AV MEMORY READ). The culprit became empty EG(current_module) In the new procedure is_persistent_class (https://github.com/php/php-src/blob/cb7b21009b951d6a08fa948c775c141f6666204c/Zend/zend_API.c#L3474) Test script: --------------- zend_class_entry tmp; INIT_CLASS_ENTRY(tmp, "Hgyjy", NULL); return zend_register_internal_class(&tmp); Replacing with, works great!!!!!!!!!!!!!!!!!!!!!!!! static zend_always_inline zend_bool is_persistent_class(zend_class_entry *ce) { return (ce->type & ZEND_INTERNAL_CLASS) && (!ce->info.internal.module || ce->info.internal.module->type == MODULE_PERSISTENT); } OR : static zend_always_inline zend_bool is_persistent_class(zend_class_entry *ce) { return (ce->type & ZEND_INTERNAL_CLASS) && (ce->info.internal.module && (ce->info.internal.module->type == MODULE_PERSISTENT)); } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79250&edit=1

« previous php.bugs (#225475) next »