diff options
| author | jvoisin | 2022-12-08 21:08:38 +0100 |
|---|---|---|
| committer | jvoisin | 2022-12-09 20:03:22 +0100 |
| commit | 110daa81c3b11ec102daf4ee634e2f3d2e9c5f36 (patch) | |
| tree | c88c95f7abfefc5d86a98d9294edade9e38f18f7 /src | |
| parent | 93c2c5632e27549d95fb7d9493769f013e49a749 (diff) | |
Portability improvements for PHP8.2
Diffstat (limited to 'src')
| -rw-r--r-- | src/sp_execute.c | 18 | ||||
| -rw-r--r-- | src/sp_utils.c | 2 | ||||
| -rw-r--r-- | src/tests/dump_request/dump_eval_blacklist.phpt | 8 | ||||
| -rw-r--r-- | src/tests/dump_request/dump_eval_whitelist.phpt | 8 | ||||
| -rw-r--r-- | src/tests/dump_request/dump_request.phpt | 8 | ||||
| -rw-r--r-- | src/tests/dump_request/dump_request_stacktrace.phpt | 8 | ||||
| -rw-r--r-- | src/tests/dump_request/dump_request_too_big.phpt | 8 |
7 files changed, 41 insertions, 19 deletions
diff --git a/src/sp_execute.c b/src/sp_execute.c index 5c0c939..84f6275 100644 --- a/src/sp_execute.c +++ b/src/sp_execute.c | |||
| @@ -336,7 +336,11 @@ static zend_result sp_stream_open(zend_file_handle *handle) { | |||
| 336 | 336 | ||
| 337 | ZEND_API zend_op_array* (*orig_zend_compile_file)(zend_file_handle* file_handle, | 337 | ZEND_API zend_op_array* (*orig_zend_compile_file)(zend_file_handle* file_handle, |
| 338 | int type) = NULL; | 338 | int type) = NULL; |
| 339 | #if PHP_VERSION_ID >= 80000 | 339 | #if PHP_VERSION_ID >= 82000 |
| 340 | ZEND_API zend_op_array* (*orig_zend_compile_string)( | ||
| 341 | zend_string* source_string, const char* filename, | ||
| 342 | enum _zend_compile_position position) = NULL; | ||
| 343 | #elif PHP_VERSION_ID >= 80000 | ||
| 340 | ZEND_API zend_op_array* (*orig_zend_compile_string)( | 344 | ZEND_API zend_op_array* (*orig_zend_compile_string)( |
| 341 | zend_string* source_string, const char* filename) = NULL; | 345 | zend_string* source_string, const char* filename) = NULL; |
| 342 | #else | 346 | #else |
| @@ -344,7 +348,11 @@ ZEND_API zend_op_array* (*orig_zend_compile_string)(zval* source_string, | |||
| 344 | char* filename) = NULL; | 348 | char* filename) = NULL; |
| 345 | #endif | 349 | #endif |
| 346 | 350 | ||
| 347 | #if PHP_VERSION_ID >= 80000 | 351 | #if PHP_VERSION_ID >= 82000 |
| 352 | ZEND_API zend_op_array* sp_compile_string(zend_string* source_string, | ||
| 353 | const char* filename, | ||
| 354 | enum _zend_compile_position position) { | ||
| 355 | #elif PHP_VERSION_ID >= 80000 | ||
| 348 | ZEND_API zend_op_array* sp_compile_string(zend_string* source_string, | 356 | ZEND_API zend_op_array* sp_compile_string(zend_string* source_string, |
| 349 | const char* filename) { | 357 | const char* filename) { |
| 350 | #else | 358 | #else |
| @@ -352,7 +360,11 @@ ZEND_API zend_op_array* sp_compile_string(zval* source_string, char* filename) { | |||
| 352 | #endif | 360 | #endif |
| 353 | // TODO(jvoisin) handle recursive calls to `eval` | 361 | // TODO(jvoisin) handle recursive calls to `eval` |
| 354 | SPG(eval_source_string) = source_string; | 362 | SPG(eval_source_string) = source_string; |
| 355 | zend_op_array* opline = orig_zend_compile_string(source_string, filename); | 363 | zend_op_array* opline = orig_zend_compile_string(source_string, filename |
| 364 | #if PHP_VERSION_ID >= 82000 | ||
| 365 | , position | ||
| 366 | #endif | ||
| 367 | ); | ||
| 356 | if (SPCFG(sloppy).enable) { | 368 | if (SPCFG(sloppy).enable) { |
| 357 | sp_sloppy_modify_opcode(opline); | 369 | sp_sloppy_modify_opcode(opline); |
| 358 | } | 370 | } |
diff --git a/src/sp_utils.c b/src/sp_utils.c index 42f7871..3107f77 100644 --- a/src/sp_utils.c +++ b/src/sp_utils.c | |||
| @@ -473,7 +473,7 @@ void unhook_functions(HashTable *ht) { | |||
| 473 | func->internal_function.handler = orig_handler; | 473 | func->internal_function.handler = orig_handler; |
| 474 | } | 474 | } |
| 475 | (void)idx;//silence a -Wunused-but-set-variable | 475 | (void)idx;//silence a -Wunused-but-set-variable |
| 476 | ZEND_HASH_FOREACH_END_DEL(); | 476 | ZEND_HASH_FOREACH_END(); |
| 477 | } | 477 | } |
| 478 | 478 | ||
| 479 | bool check_is_in_eval_whitelist(const char* function_name) { | 479 | bool check_is_in_eval_whitelist(const char* function_name) { |
diff --git a/src/tests/dump_request/dump_eval_blacklist.phpt b/src/tests/dump_request/dump_eval_blacklist.phpt index a8c1618..e294703 100644 --- a/src/tests/dump_request/dump_eval_blacklist.phpt +++ b/src/tests/dump_request/dump_eval_blacklist.phpt | |||
| @@ -6,10 +6,12 @@ if (!extension_loaded("snuffleupagus")) print "skip"; | |||
| 6 | ?> | 6 | ?> |
| 7 | --CLEAN-- | 7 | --CLEAN-- |
| 8 | <?php | 8 | <?php |
| 9 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { | 9 | if (is_dir("/tmp/dump_result/")) { |
| 10 | @unlink($dump); | 10 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { |
| 11 | @unlink($dump); | ||
| 12 | } | ||
| 13 | @rmdir("/tmp/dump_result/"); | ||
| 11 | } | 14 | } |
| 12 | @rmdir("/tmp/dump_result/"); | ||
| 13 | ?> | 15 | ?> |
| 14 | --POST-- | 16 | --POST-- |
| 15 | post_a=data_post_a&post_b=data_post_b | 17 | post_a=data_post_a&post_b=data_post_b |
diff --git a/src/tests/dump_request/dump_eval_whitelist.phpt b/src/tests/dump_request/dump_eval_whitelist.phpt index cc5a824..7385146 100644 --- a/src/tests/dump_request/dump_eval_whitelist.phpt +++ b/src/tests/dump_request/dump_eval_whitelist.phpt | |||
| @@ -6,10 +6,12 @@ if (!extension_loaded("snuffleupagus")) print "skip"; | |||
| 6 | ?> | 6 | ?> |
| 7 | --CLEAN-- | 7 | --CLEAN-- |
| 8 | <?php | 8 | <?php |
| 9 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { | 9 | if (is_dir("/tmp/dump_result/")) { |
| 10 | @unlink($dump); | 10 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { |
| 11 | @unlink($dump); | ||
| 12 | } | ||
| 13 | @rmdir("/tmp/dump_result/"); | ||
| 11 | } | 14 | } |
| 12 | @rmdir("/tmp/dump_result/"); | ||
| 13 | ?> | 15 | ?> |
| 14 | --POST-- | 16 | --POST-- |
| 15 | post_a=data_post_a&post_b=data_post_b | 17 | post_a=data_post_a&post_b=data_post_b |
diff --git a/src/tests/dump_request/dump_request.phpt b/src/tests/dump_request/dump_request.phpt index f8dee11..e955776 100644 --- a/src/tests/dump_request/dump_request.phpt +++ b/src/tests/dump_request/dump_request.phpt | |||
| @@ -8,10 +8,12 @@ if (!extension_loaded("snuffleupagus")) { | |||
| 8 | ?> | 8 | ?> |
| 9 | --CLEAN-- | 9 | --CLEAN-- |
| 10 | <?php | 10 | <?php |
| 11 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { | 11 | if (is_dir("/tmp/dump_result/")) { |
| 12 | @unlink($dump); | 12 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { |
| 13 | @unlink($dump); | ||
| 14 | } | ||
| 15 | @rmdir("/tmp/dump_result/"); | ||
| 13 | } | 16 | } |
| 14 | @rmdir("/tmp/dump_result/"); | ||
| 15 | ?> | 17 | ?> |
| 16 | --POST-- | 18 | --POST-- |
| 17 | post_a=data_post_a&post_b=data_post_b | 19 | post_a=data_post_a&post_b=data_post_b |
diff --git a/src/tests/dump_request/dump_request_stacktrace.phpt b/src/tests/dump_request/dump_request_stacktrace.phpt index 9b02ab5..9f85044 100644 --- a/src/tests/dump_request/dump_request_stacktrace.phpt +++ b/src/tests/dump_request/dump_request_stacktrace.phpt | |||
| @@ -8,10 +8,12 @@ if (!extension_loaded("snuffleupagus")) { | |||
| 8 | ?> | 8 | ?> |
| 9 | --CLEAN-- | 9 | --CLEAN-- |
| 10 | <?php | 10 | <?php |
| 11 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { | 11 | if (is_dir("/tmp/dump_result/")) { |
| 12 | @unlink($dump); | 12 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { |
| 13 | @unlink($dump); | ||
| 14 | } | ||
| 15 | @rmdir("/tmp/dump_result/"); | ||
| 13 | } | 16 | } |
| 14 | @rmdir("/tmp/dump_result/"); | ||
| 15 | ?> | 17 | ?> |
| 16 | --POST-- | 18 | --POST-- |
| 17 | post_a=data_post_a&post_b=data_post_b | 19 | post_a=data_post_a&post_b=data_post_b |
diff --git a/src/tests/dump_request/dump_request_too_big.phpt b/src/tests/dump_request/dump_request_too_big.phpt index fd265f2..4fc8f81 100644 --- a/src/tests/dump_request/dump_request_too_big.phpt +++ b/src/tests/dump_request/dump_request_too_big.phpt | |||
| @@ -8,10 +8,12 @@ if (!extension_loaded("snuffleupagus")) { | |||
| 8 | ?> | 8 | ?> |
| 9 | --CLEAN-- | 9 | --CLEAN-- |
| 10 | <?php | 10 | <?php |
| 11 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { | 11 | if (is_dir("/tmp/dump_result/")) { |
| 12 | @unlink($dump); | 12 | foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { |
| 13 | @unlink($dump); | ||
| 14 | } | ||
| 15 | @rmdir("/tmp/dump_result/"); | ||
| 13 | } | 16 | } |
| 14 | @rmdir("/tmp/dump_result/"); | ||
| 15 | ?> | 17 | ?> |
| 16 | --POST-- | 18 | --POST-- |
| 17 | post_a=data_post_a&post_b=data_post_b&post_c=c | 19 | post_a=data_post_a&post_b=data_post_b&post_c=c |
