summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2018-08-09 16:03:55 +0200
committerjvoisin2018-08-09 16:03:55 +0200
commit413e4bf67a3100baa3723d1372a09cd36ff47c72 (patch)
tree519ab8477120ce39ebac014799292fb4a55026ba
parenta461f1742a31d3a0e87885dfcd1e7aff154f96fa (diff)
Yet an other crash/hang fix
Like the two previous commits
-rw-r--r--src/sp_upload_validation.c16
-rw-r--r--src/sp_upload_validation.h4
2 files changed, 11 insertions, 9 deletions
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 @@
3 3
4ZEND_DECLARE_MODULE_GLOBALS(snuffleupagus) 4ZEND_DECLARE_MODULE_GLOBALS(snuffleupagus)
5 5
6int (*sp_rfc1867_orig_callback)(unsigned int event, void *event_data,
7 void **extra);
8int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra);
9
6#define EFREE_3(env) \ 10#define EFREE_3(env) \
7 for (size_t i = 0; i < 4; i++) { \ 11 for (size_t i = 0; i < 4; i++) { \
8 efree(env[i]); \ 12 efree(env[i]); \
9 } 13 }
10 14
11void hook_upload() {
12 sp_rfc1867_orig_callback = php_rfc1867_callback;
13 php_rfc1867_callback = sp_rfc1867_callback;
14}
15
16int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) { 15int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) {
17 int retval = SUCCESS; 16 int retval = SUCCESS;
18 17
@@ -99,3 +98,10 @@ int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra) {
99 } 98 }
100 return retval; 99 return retval;
101} 100}
101
102void hook_upload() {
103 if (NULL == sp_rfc1867_orig_callback) {
104 sp_rfc1867_orig_callback = php_rfc1867_callback;
105 php_rfc1867_callback = sp_rfc1867_callback;
106 }
107}
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 @@
3 3
4void hook_upload(); 4void hook_upload();
5 5
6int (*sp_rfc1867_orig_callback)(unsigned int event, void *event_data,
7 void **extra);
8int sp_rfc1867_callback(unsigned int event, void *event_data, void **extra);
9
10#endif 6#endif