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 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/sp_upload_validation.c') 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; + } +} -- cgit v1.3