v3/master
Very first commit: libmodsecurity
Avoid passing RuleMessage by std::shared_ptr and use a reference instead. - Avoids copying std::shared_ptr when lifetime of the RuleMessage is controlled by the caller. - The RuleMessage instance is created in RuleWithActions::evaluate and then used to call the overloaded version of this method that is specialized by subclasses. - Once the call to the overloaded method returns, the std::shared_ptr is destroyed as it's not stored by any of the callers, so it can be replaced with a stack variable and avoid paying the cost of copying the std::shared_ptr (and its control block that is guaranteed to be thread-safe and thus is not a straightforward pointer copy) - Introduced RuleMessage::reset because this is required by RuleWithActions::performLogging when it's not the 'last log', the rule has multimatch and it's to be logged. - The current version is creating allocating another instance of RuleMessage on the heap to copy the Rule & Transaction related state while all the other members in the RuleMessage are set to their default values. - The new version leverages the existent, unused and incomplete function 'clean' (renamed as 'reset') to do this on the current instance. - Notice that the current code preserves the value of m_saveMessage, so 'reset' provides an argument for the caller to control whether this member should be reinitialized.
Replace usage of range-checked 'at' method when vector/string has already been size checked
Clean up CI and libinjection integration changes
Changes copyright dates on the code
Remove redundant parenthesis
Make destructor default; remove impmelentation
Make GeoLookup::debug function static (and non-member), as suggested by cppcheck.
Update inspect_file.cc
Make detect_sqli and detect_xss compatible with libinjection v4
Encode possible binary characters from user input in audit logs
Added const reported by cppcheck 2.14
Fix cppcheck warnings, cppcheck 2.19.0
Decrease code nest level
Add const modifier to variable
Use initialization list to initialize m_service - This is correct because base class is initialized before members are initialized. - Removes cppcheck suppression by addressing reported issue. - Leverage C++11's 'default member initializer' to initialize m_provider & m_demandsPassword and address Sonarcloud issue.
fix: rx operators better null checks
Add check after intervall parsing, spell fix
Fix libxml2 related deprecated issues
Remove no longer needed cppcheck inline suppressions.
refactor: improve maintainability for SonarCloud compliance
Remove shadowed variables befor loops
Added missing override keyword as reported by cppcheck 2.14