diff options
Diffstat (limited to 'src/snuffleupagus.c')
| -rw-r--r-- | src/snuffleupagus.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/snuffleupagus.c b/src/snuffleupagus.c index 01bc4f6..7db6c93 100644 --- a/src/snuffleupagus.c +++ b/src/snuffleupagus.c | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | #endif | 3 | #endif |
| 4 | 4 | ||
| 5 | #include "php_snuffleupagus.h" | 5 | #include "php_snuffleupagus.h" |
| 6 | #include "sp_config.h" | ||
| 6 | 7 | ||
| 7 | #ifndef ZEND_EXT_API | 8 | #ifndef ZEND_EXT_API |
| 8 | #define ZEND_EXT_API ZEND_DLEXPORT | 9 | #define ZEND_EXT_API ZEND_DLEXPORT |
| @@ -82,9 +83,9 @@ PHP_GINIT_FUNCTION(snuffleupagus) { | |||
| 82 | SP_INIT(snuffleupagus_globals->config.config_cookie_encryption); | 83 | SP_INIT(snuffleupagus_globals->config.config_cookie_encryption); |
| 83 | SP_INIT(snuffleupagus_globals->config.config_disabled_constructs); | 84 | SP_INIT(snuffleupagus_globals->config.config_disabled_constructs); |
| 84 | 85 | ||
| 85 | snuffleupagus_globals->config.config_disabled_constructs->construct_include = sp_new_list(); | 86 | snuffleupagus_globals->config.config_disabled_constructs->construct_include = sp_list_new(); |
| 86 | snuffleupagus_globals->config.config_disabled_functions->disabled_functions = sp_new_list(); | 87 | snuffleupagus_globals->config.config_disabled_functions->disabled_functions = sp_list_new(); |
| 87 | snuffleupagus_globals->config.config_disabled_functions_ret->disabled_functions = sp_new_list(); | 88 | snuffleupagus_globals->config.config_disabled_functions_ret->disabled_functions = sp_list_new(); |
| 88 | 89 | ||
| 89 | SP_INIT_HT(snuffleupagus_globals->config.config_cookie_encryption->names); | 90 | SP_INIT_HT(snuffleupagus_globals->config.config_cookie_encryption->names); |
| 90 | 91 | ||
| @@ -118,10 +119,21 @@ PHP_MSHUTDOWN_FUNCTION(snuffleupagus) { | |||
| 118 | pefree(SNUFFLEUPAGUS_G(config.config_upload_validation), 1); | 119 | pefree(SNUFFLEUPAGUS_G(config.config_upload_validation), 1); |
| 119 | pefree(SNUFFLEUPAGUS_G(config.config_cookie_encryption), 1); | 120 | pefree(SNUFFLEUPAGUS_G(config.config_cookie_encryption), 1); |
| 120 | 121 | ||
| 121 | sp_list_free(SNUFFLEUPAGUS_G(config.config_disabled_functions->disabled_functions)); | 122 | sp_node_t* disabled_functions = SNUFFLEUPAGUS_G(config.config_disabled_functions->disabled_functions); |
| 123 | sp_node_t* disabled_functions_ret = SNUFFLEUPAGUS_G(config.config_disabled_functions_ret->disabled_functions); | ||
| 124 | sp_node_t* disabled_constructs = SNUFFLEUPAGUS_G(config.config_disabled_constructs->construct_include); | ||
| 125 | |||
| 126 | // Free the list of disabled functions for each `sp_disabled_function` instance | ||
| 127 | sp_disabled_function_list_free(disabled_functions); | ||
| 128 | sp_disabled_function_list_free(disabled_functions_ret); | ||
| 129 | sp_disabled_function_list_free(disabled_constructs); | ||
| 130 | |||
| 131 | sp_list_free(disabled_functions); | ||
| 122 | pefree(SNUFFLEUPAGUS_G(config.config_disabled_functions), 1); | 132 | pefree(SNUFFLEUPAGUS_G(config.config_disabled_functions), 1); |
| 123 | sp_list_free(SNUFFLEUPAGUS_G(config.config_disabled_functions_ret->disabled_functions)); | 133 | sp_list_free(disabled_functions_ret); |
| 124 | pefree(SNUFFLEUPAGUS_G(config.config_disabled_functions_ret), 1); | 134 | pefree(SNUFFLEUPAGUS_G(config.config_disabled_functions_ret), 1); |
| 135 | sp_list_free(disabled_constructs); | ||
| 136 | pefree(SNUFFLEUPAGUS_G(config.config_disabled_constructs), 1); | ||
| 125 | 137 | ||
| 126 | UNREGISTER_INI_ENTRIES(); | 138 | UNREGISTER_INI_ENTRIES(); |
| 127 | 139 | ||
