summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-09-14 22:31:15 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-09-14 22:34:10 +0200
commit4e198c00646604b5fe6726cdc9eba4c2b7861ce2 (patch)
tree6d5dc135e1eb6f170100b75055aa834769beb23e
parentdfb3a799140d7d526c0ab77be437b663bfac9cc4 (diff)
downloadphp-git-4e198c00646604b5fe6726cdc9eba4c2b7861ce2.tar.gz
Avoid segfault if module/extension version is not defined
-rw-r--r--ext/opcache/ZendAccelerator.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 3c6a1ae689..dffa3849f8 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -2710,12 +2710,16 @@ static void accel_gen_system_id(void)
*/
ZEND_HASH_FOREACH_PTR(&module_registry, module) {
PHP_MD5Update(&context, module->name, strlen(module->name));
- PHP_MD5Update(&context, module->version, strlen(module->version));
+ if (module->version != NULL) {
+ PHP_MD5Update(&context, module->version, strlen(module->version));
+ }
} ZEND_HASH_FOREACH_END();
extension = (zend_extension *) zend_llist_get_first_ex(&zend_extensions, &pos);
while (extension) {
PHP_MD5Update(&context, extension->name, strlen(extension->name));
- PHP_MD5Update(&context, extension->version, strlen(extension->version));
+ if (extension->version != NULL) {
+ PHP_MD5Update(&context, extension->version, strlen(extension->version));
+ }
extension = (zend_extension *) zend_llist_get_next_ex(&zend_extensions, &pos);
}
PHP_MD5Final(digest, &context);