summaryrefslogtreecommitdiff
path: root/src/sp_execute.c (follow)
AgeCommit message (Collapse)Author
2026-01-25Avoid double checking if function is hookedJakub Onderka
2024-06-06Free allocated memory in early exitChristian Göttsche
2023-06-25Remove ZEND_HOTjvoisin
2023-04-12Make readonly_exec play nice on readonly filesystemsjvoisin
2022-12-10Even more changes to accomodate PHP8.2jvoisin
2022-12-09Portability improvements for PHP8.2jvoisin
2022-08-21Fix sloppy comparisonjvoisin
2022-07-20Merge branch 'master' into pr1BeF
2022-07-14Minor refactoringjvoisin
2022-07-12Refactoring of the previous commitjvoisin
2022-07-12extended checks for readonly_exec, enabled by defaultBen Fuhrmannek
introduced config options: readonly_exec.extended_checks() or xchecks() readonly_exec.no_extended_checks() or noxchecks()
2022-07-12allow file:// prefix in include() wich readonly_exec modeBen Fuhrmannek
2022-07-12Log `eval` content when matching on its parameterjvoisin
2022-06-27Dump the eval'ed codejvoisin
2022-06-27Move compile_file and compile_string to sp_execute.cjvoisin
2022-04-19extended checks for readonly_exec, enabled by defaultBen Fuhrmannek
introduced config options: readonly_exec.extended_checks() or xchecks() readonly_exec.no_extended_checks() or noxchecks()
2022-04-19allow file:// prefix in include() wich readonly_exec modeBen Fuhrmannek
2022-01-07fixed invalid return valueBen Fuhrmannek
2022-01-06prevent double checks and fixed segfault on return value accessBen Fuhrmannek
2021-12-14fix: apply checks to internal function calls, too, so we can match internal ↵Ben Fuhrmannek
class methods that are not hooked
2021-12-14fix: include class name in eval whitelist matchingBen Fuhrmannek
2021-11-30PHP 8.1 compatibility with streams/includes + fix for ticksBen Fuhrmannek
2021-09-23config is stack allocated now + some code improvements (see details)Ben Fuhrmannek
* for easier memory manegement, the entire sp_config struct was merged into snuffleupagus_globals and allocated on stack where possible * SNUFFLEUPAGUS_G() can be written as SPG(), which is faster to type and easier to read * execution_depth is re-initialized to 0 for each request * function calls with inline string and length parameters consistently use ZEND_STRL instead of sizeof()-1 * execution is actually hooked if recursion protection is enabled * some line breaks were removed to make the code more readable
2021-09-15implemented execution depth limitBen Fuhrmannek
2021-08-16fincy new scanner/parser for config rules + fixed a few bugs along the way + ↵Ben Fuhrmannek
fixed related unittests
2021-05-09Add some guard to prevent hooking recursionjvoisin
This shouldn't be necessary, but better safe than sorry.
2020-11-12Simplify a bit a functionjvoisin
2020-08-16Remove a useless line of codejvoisin
2020-08-12Allow empty configuration (#342)jvoisin
This commit allows php to run (with a warning) if there is no specified snuffleupagus configuration, instead of refusing to start.
2020-07-22refactoring sp_log_* (#340)Giovanni
Co-authored-by: Giovanni Dante Grazioli <giovanni.dantegrazioli@nbs-system.com>
2019-06-20Fix snufflepagus_globals linking issues and one mac compatibility issuebef
2019-02-23Try to unify the includesjvoisin
2018-10-09Don't check the return values of functions that might not return (#255)jvoisin
This is due to our modifications to the logging system
2018-10-06Add a missing opcode in sp_execute_exjvoisin
2018-10-06Coverage++jvoisin
2018-10-06Bump coverage againjvoisin
2018-10-06Bump coverage againjvoisin
2018-10-06Bump a bit the coveragejvoisin
* `setcookie` doesn't always return `true` anymore * clang-format * Cookies with invalid decryption are dropped, but the request isn't anymore * faulty unserialize are now dumpable
2018-10-06Remove sp_terminate and bump a bit the coveragejvoisin
2018-08-30Minor code cleanupxXx-caillou-xXx
2018-08-30Match on ret improvementsxXx-caillou-xXx
This commit does two things: - Implement matching on calltraces for ret - Implement matching on ret of user functions if the return value is not used.
2018-08-28Fix a SIGSEGV on user-created function's return valuexXx-caillou-xXx
2018-08-09Fix yet an other hang/crashjvoisin
There are valid reasons for `orig_zend_execute_internal` to be `NULL`, we we're not checking if it is, well, `NULL`.
2018-08-09Fix a typo in the previous commitsjvoisin
2018-08-09Fix a crash/hang when using fpm's poolsjvoisin
We might have ended up in infinite loops when using php-fpm, if several different process hooked some functions twice. Thanks to @sriccio for reporting the issue
2018-07-13Yet an other pass of clang-formatjvoisin
2018-07-13Reduce call to get_complete_function_pathxXx-caillou-xXx
2018-07-13Massively optimize how rules are handledxXx-caillou-xXx
This commit does a lot of things: - Use hashtables instead of lists to store the rules - Rules that can be applied at launch time won't be tried at runtime - Improve feedback when writing nonsensical rules - Make intensive use of `zend_string` instead of `char*`
2018-07-09Trying to fix sloppy comparison (#186)jvoisin
* Trying to fix sloppy comparison https://github.com/nbs-system/snuffleupagus/issues/10 by modifying php's opcode
2018-03-12Bump the changelogv0.2.2jvoisin