| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 27 hours | Prevent opcache from inlining functions with return-value rules on PHP 8.5+optim85 | jvoisin | |
| PHP 8.5's opcache optimizer can inline trivial user functions (constant return values), completely eliminating the DO_UCALL opcode. When this happens, zend_execute_ex is never invoked and snuffleupagus's return-value monitoring hooks never fire. Fix this by setting ZEND_ACC_HAS_TYPE_HINTS on monitored functions' op_arrays during compilation (via sp_op_array_handler). This flag is checked by opcache's zend_try_inline_call() and prevents inlining. For 0-arg functions — the only ones eligible for inlining — there are no RECV opcodes, so the runtime impact is zero. To enable sp_op_array_handler when return-value rules are configured, the extension now registers itself as a zend extension and sets ZEND_COMPILE_HANDLE_OP_ARRAY (previously only done for global_strict). The disabled_function_echo_2 test is updated to use separate echo statements and opcache.optimization_level=0, since opcache's echo merging is a compile-time string concatenation that cannot be prevented per-function. This is a bit ugly, but it's the less awful solution to be able to hook return values. | |||
| 28 hours | Skip a test on ≥PHP8.5 | jvoisin | |
| PHP is now optimizing `echo A,B,C` into `echo A B C`, so the test is pointless. | |||
| 2026-03-29 | Add a test for validate idempotence of (un)serialize | jvoisin | |
| 2026-03-25 | Add a test for Dateinterval::__construct | jvoisin | |
| As it has been privately reported that the rule might not be working, so better safe than sorry. Moreover, we didn't have tests for `__construct` | |||
| 2026-02-22 | Log session ID lengths on failure | Christian Göttsche | |
| 2026-02-22 | Generalize disabled_functions_regexp_multiple.phpt expected output | Christian Göttsche | |
| On uncommon architectures, like s390x, `-2` instead of `-1` might be printed. | |||
| 2026-02-15 | tests: add several skip reasons | Christian Göttsche | |
| Co-authored-by: Julien "jvoisin" Voisin <julien.voisin@dustri.org> | |||
| 2025-10-24 | feat(log): add the possibility to log to a filelog2file | jvoisin | |
| 2025-10-14 | Add a test | jvoisin | |
| 2025-09-01 | Add support for PHP8.5 | jvoisin | |
| 2024-09-06 | Skip a test on PHP8.4 | jvoisin | |
| 2024-07-09 | Fix compilation for PHP84+ | jvoisin | |
| PHP changed some includes for PHP8.4. This commit also adds php8.4-rc to the CI This fixes #497 and #496 Reported-by: rainerjung | |||
| 2024-06-09 | Use more generic expected test result format | Christian Göttsche | |
| 2024-06-09 | Add option to specify the allowed "php" wrapper types | Christian Göttsche | |
| In addition of the current possibility to filter wrappers by their protocol name, also add the option to filter the "php" wrapper by the requested kind. Especially the 'filter' backend can be disabled that way. | |||
| 2024-06-06 | Fix misc typos | Christian Göttsche | |
| 2024-01-15 | Add a test for issue #479 | jvoisin | |
| 2024-01-09 | Add some comments to a rule | jvoisin | |
| This should help diagnose https://github.com/jvoisin/snuffleupagus/issues/477 | |||
| 2023-12-13 | print key and value on INI violations | Christian Göttsche | |
| On violations of INI settings include the key and if appropriate the value in the log message. This helps to locate offenders and fine tune the configuration itself. | |||
| 2023-11-26 | Fix typos | Christian Göttsche | |
| 2023-09-18 | Get rid of some travis-ci leftovers | jvoisin | |
| 2023-08-02 | Update broken_conf_no_file_specified.phpt | Pete Cooper | |
| typo | |||
| 2023-08-02 | Update loading.phpt | Pete Cooper | |
| typo | |||
| 2023-04-29 | Improve how the parser is generated | jvoisin | |
| - use long variant of options for re2c in its makefile - use `define` instead of magic numbers - add some consts - trailing `;` are now mandatory for conditions - NULL bytes are no longer allowed in configuration file - the parser shouldn't crash in the absence of trailing new line at the end of its configuration file | |||
| 2023-02-02 | Url encode functions arguments when logging them | jvoisin | |
| 2023-01-31 | Add sp.log_max_len | jvoisin | |
| 2023-01-04 | Fix the CI for PHP8.2 | jvoisin | |
| 2022-12-11 | Add support for PHP8.2 | jvoisin | |
| 2022-12-10 | Fix a minor typo in the testsuite | jvoisin | |
| 2022-12-09 | Portability improvements for PHP8.2 | jvoisin | |
| 2022-12-08 | Add unserialize_noclass | jvoisin | |
| 2022-08-21 | Fix sloppy comparison | jvoisin | |
| 2022-07-12 | Refactoring of the previous commit | jvoisin | |
| 2022-07-12 | Disable extended checks for readonly_exec by default | jvoisin | |
| 2022-07-12 | extended checks for readonly_exec, enabled by default | Ben Fuhrmannek | |
| introduced config options: readonly_exec.extended_checks() or xchecks() readonly_exec.no_extended_checks() or noxchecks() | |||
| 2022-07-12 | allow file:// prefix in include() wich readonly_exec mode | Ben Fuhrmannek | |
| 2022-07-12 | Log `eval` content when matching on its parameter | jvoisin | |
| 2022-06-27 | Dump the eval'ed code | jvoisin | |
| 2022-06-13 | Fix the CI on PHP8.0 and PHP8.1 | jvoisin | |
| 2022-05-16 | Don't run disabled_functions_param_str_representation_php8 on php7 | jvoisin | |
| 2022-05-02 | Add more tests for php8 | jvoisin | |
| 2022-04-19 | fixed test case due to output change | Ben Fuhrmannek | |
| 2022-04-17 | Fix dom-related test on Debian 11 on PHP7.4 | jvoisin | |
| 2022-03-20 | Fix compilation on PHP<7.2 | jvoisin | |
| 2022-01-12 | removed redundant tests + minor fixes | Ben Fuhrmannek | |
| 2022-01-11 | fixed incorrect test description | Ben Fuhrmannek | |
| 2022-01-11 | fixed test case | Ben Fuhrmannek | |
| 2022-01-11 | handle opcache test case failure | Ben Fuhrmannek | |
| 2022-01-11 | skip test if pcntl is missing | Ben Fuhrmannek | |
| 2022-01-07 | proper test case cleanup | Ben Fuhrmannek | |
| 2022-01-05 | fix test case for php7 | Ben Fuhrmannek | |
