From 5922f74e4d0a4f5b222ea5965de87a43b681e8fa Mon Sep 17 00:00:00 2001 From: codinghuang <2812240764@qq.com> Date: Fri, 27 Nov 2020 20:29:59 +0800 Subject: [PATCH 1/4] Add const modifier for zend_extension --- Zend/zend_extensions.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index 3f330d2a2c406..49ce115548490 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -75,11 +75,11 @@ typedef size_t (*op_array_persist_calc_func_t)(zend_op_array *op_array); typedef size_t (*op_array_persist_func_t)(zend_op_array *op_array, void *mem); struct _zend_extension { - char *name; - char *version; - char *author; - char *URL; - char *copyright; + const char *name; + const char *version; + const char *author; + const char *URL; + const char *copyright; startup_func_t startup; shutdown_func_t shutdown; From 87a6debab1227b9076c3ffdf72672b2aa8cba00e Mon Sep 17 00:00:00 2001 From: codinghuang <2812240764@qq.com> Date: Sun, 29 Nov 2020 11:08:19 +0800 Subject: [PATCH 2/4] Fix compile error --- sapi/phpdbg/phpdbg_prompt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index 39ef7d8768263..5f1451eb07d20 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -1294,7 +1294,7 @@ PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, char **name) goto quit; } - *name = new_extension->name; + *name = (char *) new_extension->name; zend_register_extension(new_extension, handle); From 324957087d6c64510ea056751b0a611d795ff8c9 Mon Sep 17 00:00:00 2001 From: codinghuang <2812240764@qq.com> Date: Mon, 30 Nov 2020 09:54:57 +0800 Subject: [PATCH 3/4] Update --- sapi/phpdbg/phpdbg_prompt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index 5f1451eb07d20..5121fdb6311bc 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -1227,7 +1227,7 @@ static void add_zendext_info(zend_extension *ext) /* {{{ */ { /* }}} */ #ifdef HAVE_LIBDL -PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, char **name) /* {{{ */ { +PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, const char **name) /* {{{ */ { DL_HANDLE handle; char *extension_dir; @@ -1294,7 +1294,7 @@ PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, char **name) goto quit; } - *name = (char *) new_extension->name; + *name = new_extension->name; zend_register_extension(new_extension, handle); @@ -1325,7 +1325,7 @@ PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, char **name) } module_entry = get_module(); - *name = (char *) module_entry->name; + *name = module_entry->name; if (strcmp(ZEND_EXTENSION_BUILD_ID, module_entry->build_id)) { phpdbg_error("dl", "type=\"wrongbuild\" module=\"%s\" buildneeded=\"%s\" buildinstalled=\"%s\"", "%s was built with configuration %s, whereas running engine is %s", module_entry->name, module_entry->build_id, ZEND_EXTENSION_BUILD_ID); @@ -1386,7 +1386,7 @@ PHPDBG_COMMAND(dl) /* {{{ */ path = estrndup(param->str, param->len); phpdbg_activate_err_buf(1); - if ((type = phpdbg_load_module_or_extension(&path, &name)) == NULL) { + if ((type = phpdbg_load_module_or_extension(&path, (const char **) &name)) == NULL) { phpdbg_error("dl", "path=\"%s\" %b", "Could not load %s, not found or invalid zend extension / module: %b", path); efree(name); } else { From b016078767b2c21565c70eb66d906fce3b570663 Mon Sep 17 00:00:00 2001 From: codinghuang <2812240764@qq.com> Date: Tue, 1 Dec 2020 10:20:39 +0800 Subject: [PATCH 4/4] Should not free module name --- sapi/phpdbg/phpdbg_prompt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index 5121fdb6311bc..58a54a5a55432 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -1371,8 +1371,8 @@ PHPDBG_API const char *phpdbg_load_module_or_extension(char **path, const char * PHPDBG_COMMAND(dl) /* {{{ */ { - const char *type; - char *name, *path; + const char *type, *name; + char *path; if (!param || param->type == EMPTY_PARAM) { phpdbg_notice("dl", "extensiontype=\"Zend extension\"", "Zend extensions"); @@ -1386,9 +1386,8 @@ PHPDBG_COMMAND(dl) /* {{{ */ path = estrndup(param->str, param->len); phpdbg_activate_err_buf(1); - if ((type = phpdbg_load_module_or_extension(&path, (const char **) &name)) == NULL) { + if ((type = phpdbg_load_module_or_extension(&path, &name)) == NULL) { phpdbg_error("dl", "path=\"%s\" %b", "Could not load %s, not found or invalid zend extension / module: %b", path); - efree(name); } else { phpdbg_notice("dl", "extensiontype=\"%s\" name=\"%s\" path=\"%s\"", "Successfully loaded the %s %s at path %s", type, name, path); }