summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2022-12-08 21:08:38 +0100
committerjvoisin2022-12-09 20:03:22 +0100
commit110daa81c3b11ec102daf4ee634e2f3d2e9c5f36 (patch)
treec88c95f7abfefc5d86a98d9294edade9e38f18f7
parent93c2c5632e27549d95fb7d9493769f013e49a749 (diff)
Portability improvements for PHP8.2
-rw-r--r--src/sp_execute.c18
-rw-r--r--src/sp_utils.c2
-rw-r--r--src/tests/dump_request/dump_eval_blacklist.phpt8
-rw-r--r--src/tests/dump_request/dump_eval_whitelist.phpt8
-rw-r--r--src/tests/dump_request/dump_request.phpt8
-rw-r--r--src/tests/dump_request/dump_request_stacktrace.phpt8
-rw-r--r--src/tests/dump_request/dump_request_too_big.phpt8
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
337ZEND_API zend_op_array* (*orig_zend_compile_file)(zend_file_handle* file_handle, 337ZEND_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
340ZEND_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
340ZEND_API zend_op_array* (*orig_zend_compile_string)( 344ZEND_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
352ZEND_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
348ZEND_API zend_op_array* sp_compile_string(zend_string* source_string, 356ZEND_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
479bool check_is_in_eval_whitelist(const char* function_name) { 479bool 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
9foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { 9if (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--
15post_a=data_post_a&post_b=data_post_b 17post_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
9foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { 9if (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--
15post_a=data_post_a&post_b=data_post_b 17post_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
11foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { 11if (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--
17post_a=data_post_a&post_b=data_post_b 19post_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
11foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { 11if (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--
17post_a=data_post_a&post_b=data_post_b 19post_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
11foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) { 11if (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--
17post_a=data_post_a&post_b=data_post_b&post_c=c 19post_a=data_post_a&post_b=data_post_b&post_c=c