diff options
Diffstat (limited to 'src/snuffleupagus.c')
| -rw-r--r-- | src/snuffleupagus.c | 27 |
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 | ||
| 265 | static void add_df_to_arr(zval *arr, sp_disabled_function *df) { | 257 | static 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; |
