summaryrefslogtreecommitdiff
path: root/src/snuffleupagus.c
diff options
context:
space:
mode:
authorBeF2022-07-20 12:15:07 +0200
committerGitHub2022-07-20 12:15:07 +0200
commit2aed4220c2d019cc9b46fec70cfd79d249498e14 (patch)
treee7cc3d1d4db617fc5ab1dbcc60f2366407eb5da5 /src/snuffleupagus.c
parent72109c9bf016145364b19162a5ff998fc5858a9c (diff)
parent75595945d1d868fbd6db743809ca8a3eb5de3113 (diff)
Merge pull request #1 from jvoisin/pr1
pr for fetching upstream
Diffstat (limited to 'src/snuffleupagus.c')
-rw-r--r--src/snuffleupagus.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/snuffleupagus.c b/src/snuffleupagus.c
index 74af0ed..30f6b3d 100644
--- a/src/snuffleupagus.c
+++ b/src/snuffleupagus.c
@@ -1,11 +1,3 @@
1#ifdef PHP_WIN32
2#include "win32/glob.h"
3#else
4#include <glob.h>
5#endif
6
7#include "zend_smart_str.h"
8
9#include "php_snuffleupagus.h" 1#include "php_snuffleupagus.h"
10 2
11#ifndef ZEND_EXT_API 3#ifndef ZEND_EXT_API
@@ -262,7 +254,7 @@ PHP_MINFO_FUNCTION(snuffleupagus) {
262#define ADD_ASSOC_ZSTR(arr, key, zstr) if (zstr) { add_assoc_str(arr, key, zstr); } else { add_assoc_null(arr, key); } 254#define ADD_ASSOC_ZSTR(arr, key, zstr) if (zstr) { add_assoc_str(arr, key, zstr); } else { add_assoc_null(arr, key); }
263#define ADD_ASSOC_REGEXP(arr, key, regexp) if (regexp && regexp->pattern) { add_assoc_str(arr, key, regexp->pattern); } else { add_assoc_null(arr, key); } 255#define ADD_ASSOC_REGEXP(arr, key, regexp) if (regexp && regexp->pattern) { add_assoc_str(arr, key, regexp->pattern); } else { add_assoc_null(arr, key); }
264 256
265static void add_df_to_arr(zval *arr, sp_disabled_function *df) { 257static void add_df_to_arr(zval *arr, sp_disabled_function const *const df) {
266 zval arr_df; 258 zval arr_df;
267 array_init(&arr_df); 259 array_init(&arr_df);
268 260
@@ -375,7 +367,7 @@ static void dump_config() {
375 if (splist) { \ 367 if (splist) { \
376 zval arr_sp; \ 368 zval arr_sp; \
377 array_init(&arr_sp); \ 369 array_init(&arr_sp); \
378 for (sp_list_node *p = splist; p; p = p->next) { add_next_index_str(&arr_sp, p->data); } \ 370 for (const sp_list_node *p = splist; p; p = p->next) { add_next_index_str(&arr_sp, p->data); } \
379 add_assoc_zval(arr, key, &arr_sp); \ 371 add_assoc_zval(arr, key, &arr_sp); \
380 } else { add_assoc_null(arr, key); } 372 } else { add_assoc_null(arr, key); }
381 373
@@ -391,6 +383,8 @@ static void dump_config() {
391 383
392 ADD_ASSOC_SPLIST(&arr, SP_TOKEN_ALLOW_WRAPPERS, SPCFG(wrapper).whitelist); 384 ADD_ASSOC_SPLIST(&arr, SP_TOKEN_ALLOW_WRAPPERS, SPCFG(wrapper).whitelist);
393 385
386#undef ADD_ASSOC_SPLIST
387
394 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." SP_TOKEN_ENABLE, SPCFG(ini).enable); 388 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." SP_TOKEN_ENABLE, SPCFG(ini).enable);
395 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." SP_TOKEN_SIM, SPCFG(ini).simulation); 389 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." SP_TOKEN_SIM, SPCFG(ini).simulation);
396 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." "policy_ro", SPCFG(ini).policy_readonly); 390 add_assoc_bool(&arr, SP_TOKEN_INI_PROTECTION "." "policy_ro", SPCFG(ini).policy_readonly);
@@ -402,7 +396,7 @@ static void dump_config() {
402 zval arr_ini; 396 zval arr_ini;
403 array_init(&arr_ini); 397 array_init(&arr_ini);
404 398
405 sp_ini_entry *sp_entry; 399 const sp_ini_entry *sp_entry;
406 ZEND_HASH_FOREACH_PTR(SPCFG(ini).entries, sp_entry) 400 ZEND_HASH_FOREACH_PTR(SPCFG(ini).entries, sp_entry)
407 zval arr_ini_entry; 401 zval arr_ini_entry;
408 array_init(&arr_ini_entry); 402 array_init(&arr_ini_entry);
@@ -428,7 +422,7 @@ static void dump_config() {
428 array_init(&arr_cookies); 422 array_init(&arr_cookies);
429 423
430 sp_cookie *cookie; 424 sp_cookie *cookie;
431 sp_list_node *p = SPCFG(cookie).cookies; 425 const sp_list_node *p = SPCFG(cookie).cookies;
432 for (; p; p = p->next) { 426 for (; p; p = p->next) {
433 zval arr_cookie; 427 zval arr_cookie;
434 array_init(&arr_cookie); 428 array_init(&arr_cookie);
@@ -452,7 +446,8 @@ static void dump_config() {
452 zval arr_dfs; 446 zval arr_dfs;
453 array_init(&arr_dfs); 447 array_init(&arr_dfs);
454 size_t num_df = 0; 448 size_t num_df = 0;
455 sp_list_node *dflist, *dfp; 449 const sp_list_node *dflist;
450 const sp_list_node *dfp;
456 ZEND_HASH_FOREACH_PTR(SPCFG(disabled_functions), dflist) 451 ZEND_HASH_FOREACH_PTR(SPCFG(disabled_functions), dflist)
457 for (dfp = dflist; dfp; dfp = dfp->next) { 452 for (dfp = dflist; dfp; dfp = dfp->next) {
458 add_df_to_arr(&arr_dfs, dfp->data); 453 add_df_to_arr(&arr_dfs, dfp->data);
@@ -608,12 +603,14 @@ static PHP_INI_MH(OnUpdateConfiguration) {
608 (SPCFG(disabled_functions_ret) && zend_hash_num_elements(SPCFG(disabled_functions_ret))); 603 (SPCFG(disabled_functions_ret) && zend_hash_num_elements(SPCFG(disabled_functions_ret)));
609 604
610 if (SPCFG(show_old_php_warning) && getenv("SP_SKIP_OLD_PHP_CHECK") == NULL) { 605 if (SPCFG(show_old_php_warning) && getenv("SP_SKIP_OLD_PHP_CHECK") == NULL) {
611 time_t ts = time(NULL); 606 const time_t ts = time(NULL);
612 if ((PHP_VERSION_ID < 70300) || 607 if ((PHP_VERSION_ID < 70300) ||
613 (PHP_VERSION_ID < 70400 && ts >= (time_t)1638745200L) || 608 (PHP_VERSION_ID < 70400 && ts >= (time_t)1638745200L) ||
614 (PHP_VERSION_ID < 80000 && ts >= (time_t)1669590000L) || 609 (PHP_VERSION_ID < 80000 && ts >= (time_t)1669590000L) ||
615 (PHP_VERSION_ID < 80100 && ts >= (time_t)1700953200L)) { 610 (PHP_VERSION_ID < 80100 && ts >= (time_t)1700953200L)) {
616 sp_log_warn("End-of-Life Check", "Your PHP version '" PHP_VERSION "' is not officially mainained anymore. Please upgrade as soon as possible. - Note: This message can be switched off by setting 'sp.global.show_old_php_warning.disable();' in your rules file or by setting the environment variable SP_SKIP_OLD_PHP_CHECK=1."); 611 sp_log_warn("End-of-Life Check", "Your PHP version '" PHP_VERSION "' is not officially maintained anymore. " \
612 "Please upgrade as soon as possible. - Note: This message can be switched off by setting " \
613 "'sp.global.show_old_php_warning.disable();' in your rules file or by setting the environment variable SP_SKIP_OLD_PHP_CHECK=1.");
617 } 614 }
618 } 615 }
619 return SUCCESS; 616 return SUCCESS;