summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2021-05-09 22:32:20 +0200
committerjvoisin2021-05-09 22:32:46 +0200
commitc3115fc26daebd0fa7135c202154272e42fbfcfd (patch)
tree269f58c105c0a10278386acd8f6b36c22a586064
parentec67149705739f9c13dc1f5dee335768cab3d7a0 (diff)
Add some checks to prevent recursion upon config reloading
-rw-r--r--src/snuffleupagus.c2
-rw-r--r--src/sp_upload_validation.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/snuffleupagus.c b/src/snuffleupagus.c
index 79a3003..f360a0c 100644
--- a/src/snuffleupagus.c
+++ b/src/snuffleupagus.c
@@ -325,7 +325,7 @@ static PHP_INI_MH(OnUpdateConfiguration) {
325 zend_hash_str_find( 325 zend_hash_str_find(
326 SNUFFLEUPAGUS_G(config).config_disabled_functions_ret_hooked, "echo", 326 SNUFFLEUPAGUS_G(config).config_disabled_functions_ret_hooked, "echo",
327 sizeof("echo") - 1)) && 327 sizeof("echo") - 1)) &&
328 NULL == zend_write_default) { 328 NULL == zend_write_default && zend_write != hook_echo) {
329 zend_write_default = zend_write; 329 zend_write_default = zend_write;
330 zend_write = hook_echo; 330 zend_write = hook_echo;
331 } 331 }
diff --git a/src/sp_upload_validation.c b/src/sp_upload_validation.c
index f3ae311..cebab3e 100644
--- a/src/sp_upload_validation.c
+++ b/src/sp_upload_validation.c
@@ -103,6 +103,10 @@ int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) {
103#endif 103#endif
104 104
105void hook_upload() { 105void hook_upload() {
106 if (php_rfc1867_callback == sp_rfc1867_callback) {
107 return;
108 }
109
106 if (NULL == sp_rfc1867_orig_callback) { 110 if (NULL == sp_rfc1867_orig_callback) {
107 sp_rfc1867_orig_callback = php_rfc1867_callback; 111 sp_rfc1867_orig_callback = php_rfc1867_callback;
108 php_rfc1867_callback = sp_rfc1867_callback; 112 php_rfc1867_callback = sp_rfc1867_callback;