From 413e4bf67a3100baa3723d1372a09cd36ff47c72 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 9 Aug 2018 16:03:55 +0200 Subject: Yet an other crash/hang fix Like the two previous commits --- src/sp_upload_validation.c | 16 +++++++++++----- src/sp_upload_validation.h | 4 ---- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/sp_upload_validation.c b/src/sp_upload_validation.c index 794c61f..a8a1340 100644 --- a/src/sp_upload_validation.c +++ b/src/sp_upload_validation.c @@ -3,16 +3,15 @@ ZEND_DECLARE_MODULE_GLOBALS(snuffleupagus) +int (*sp_rfc1867_orig_callback)(unsigned int event, void *event_data, + void **extra); +int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra); + #define EFREE_3(env) \ for (size_t i = 0; i < 4; i++) { \ efree(env[i]); \ } -void hook_upload() { - sp_rfc1867_orig_callback = php_rfc1867_callback; - php_rfc1867_callback = sp_rfc1867_callback; -} - int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) { int retval = SUCCESS; @@ -99,3 +98,10 @@ int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) { } return retval; } + +void hook_upload() { + if (NULL == sp_rfc1867_orig_callback) { + sp_rfc1867_orig_callback = php_rfc1867_callback; + php_rfc1867_callback = sp_rfc1867_callback; + } +} diff --git a/src/sp_upload_validation.h b/src/sp_upload_validation.h index ae3871b..53790fd 100644 --- a/src/sp_upload_validation.h +++ b/src/sp_upload_validation.h @@ -3,8 +3,4 @@ void hook_upload(); -int (*sp_rfc1867_orig_callback)(unsigned int event, void *event_data, - void **extra); -int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra); - #endif -- cgit v1.3