Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save zimmerle/9733074f945a463246e454359108b706 to your computer and use it in GitHub Desktop.

Select an option

Save zimmerle/9733074f945a463246e454359108b706 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
================================================
modsecurity 3.0: ./test-suite-memcheck.log
================================================
# TOTAL: 4553
# PASS: 4549
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
RUN: test/test-cases/regression/actions.json
============================================
==16880== Memcheck, a memory error detector
==16880== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16880== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16880== Command: ./regression_tests .././test/test-cases/regression/actions.json
==16880==
:test-result: PASS actions.json:actions :: phase:2,trim,status:500,deny
:test-result: PASS actions.json:actions :: phase:4,trim,status:500,deny
:test-result: PASS actions.json:actions :: trim,deny
:test-result: PASS actions.json:actions :: trim,redirect:'http://www.google.com'
:test-result: PASS actions.json:actions :: trim,status:500
:test-result: PASS actions.json:actions :: trim,status:500,redirect:http://www.google.com
==16880==
==16880== HEAP SUMMARY:
==16880== in use at exit: 2,004,048 bytes in 633 blocks
==16880== total heap usage: 31,671 allocs, 31,038 frees, 3,660,945 bytes allocated
==16880==
==16880== 574 (552 direct, 22 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16880== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16880== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16880== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16880== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 714 bytes in 6 blocks are definitely lost in loss record 84 of 114
==16880== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16880== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16880== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16880== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16880== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 92 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16880== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16880== by 0x42FDF5: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:402)
==16880== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16880== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==16880== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 93 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A0F: operator<< <std::char_traits<char> > (ostream:561)
==16880== by 0x413A0F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16880== by 0x4303D7: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:495)
==16880== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16880== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16880== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 94 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16880== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16880== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16880== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 95 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16880== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16880== by 0x414D43: modsecurity::Transaction::processLogging(int) (transaction.cc:1171)
==16880== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 96 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16880== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16880== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==16880== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,049 bytes in 1 blocks are definitely lost in loss record 97 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16880== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16880== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16880== by 0x414CA1: modsecurity::Transaction::processLogging(int) (transaction.cc:1134)
==16880== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,448 bytes in 6 blocks are definitely lost in loss record 98 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 2,808 (648 direct, 2,160 indirect) bytes in 6 blocks are definitely lost in loss record 99 of 114
==16880== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16880== by 0x5328700: pcre_study (pcre_study.c:1572)
==16880== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16880== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16880== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 8,192 bytes in 1 blocks are possibly lost in loss record 101 of 114
==16880== at 0x4C2E87B: operator new[](unsigned long) (vg_replace_malloc.c:423)
==16880== by 0x5BFA457: std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x5BFE6A1: std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16880== by 0x42CE15: open (fstream:308)
==16880== by 0x42CE15: open (fstream:823)
==16880== by 0x42CE15: modsecurity::DebugLogWriterAgent::DebugLogWriterAgent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer_agent.cc:31)
==16880== by 0x42C27F: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16880== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16880== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16880== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16880== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 49,488 bytes in 6 blocks are definitely lost in loss record 107 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x4476CA: allocate (new_allocator.h:104)
==16880== by 0x4476CA: allocate (alloc_traits.h:491)
==16880== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16880== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16880== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16880== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16880== by 0x446EFD: rehash (hashtable.h:1936)
==16880== by 0x446EFD: reserve (hashtable_policy.h:957)
==16880== by 0x446EFD: reserve (unordered_map.h:1505)
==16880== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16880== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16880== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16880== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 108 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16880== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 109 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16880== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 110 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16880== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 111 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16880== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 81,826 (384 direct, 81,442 indirect) bytes in 6 blocks are definitely lost in loss record 113 of 114
==16880== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16880== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16880== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16880== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== 1,572,864 bytes in 6 blocks are definitely lost in loss record 114 of 114
==16880== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16880== by 0x40BA0F: Rules (rules.h:63)
==16880== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16880== by 0x407CCC: main (regression.cc:387)
==16880==
==16880== LEAK SUMMARY:
==16880== definitely lost: 1,640,928 bytes in 67 blocks
==16880== indirectly lost: 281,576 bytes in 560 blocks
==16880== possibly lost: 8,192 bytes in 1 blocks
==16880== still reachable: 73,352 bytes in 5 blocks
==16880== suppressed: 0 bytes in 0 blocks
==16880== Reachable blocks (those to which a pointer was found) are not shown.
==16880== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16880==
==16880== For counts of detected and suppressed errors, rerun with: -v
==16880== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/actions.json
RUN: test/test-cases/regression/debug_log.json
==============================================
==16854== Memcheck, a memory error detector
==16854== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16854== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16854== Command: ./regression_tests .././test/test-cases/regression/debug_log.json
==16854==
:test-result: PASS debug_log.json:Debug log
==16854==
==16854== HEAP SUMMARY:
==16854== in use at exit: 405,029 bytes in 118 blocks
==16854== total heap usage: 7,934 allocs, 7,816 frees, 1,007,172 bytes allocated
==16854==
==16854== 73 bytes in 1 blocks are definitely lost in loss record 29 of 90
==16854== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16854== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16854== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16854== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16854== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 204 (108 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 66 of 90
==16854== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16854== by 0x5328700: pcre_study (pcre_study.c:1572)
==16854== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16854== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16854== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 408 bytes in 1 blocks are definitely lost in loss record 71 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 4,097 bytes in 1 blocks are definitely lost in loss record 75 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16854== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16854== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16854== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16854== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16854== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16854== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16854== by 0x414D43: modsecurity::Transaction::processLogging(int) (transaction.cc:1171)
==16854== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,248 bytes in 1 blocks are definitely lost in loss record 82 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x4476CA: allocate (new_allocator.h:104)
==16854== by 0x4476CA: allocate (alloc_traits.h:491)
==16854== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16854== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16854== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16854== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16854== by 0x446EFD: rehash (hashtable.h:1936)
==16854== by 0x446EFD: reserve (hashtable_policy.h:957)
==16854== by 0x446EFD: reserve (unordered_map.h:1505)
==16854== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16854== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16854== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16854== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 83 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16854== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 84 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16854== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 85 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16854== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 86 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16854== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 87 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16854== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16854== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16854== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16854== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 14,489 (64 direct, 14,425 indirect) bytes in 1 blocks are definitely lost in loss record 88 of 90
==16854== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16854== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16854== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16854== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== 262,144 bytes in 1 blocks are definitely lost in loss record 90 of 90
==16854== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16854== by 0x40BA0F: Rules (rules.h:63)
==16854== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16854== by 0x407CCC: main (regression.cc:387)
==16854==
==16854== LEAK SUMMARY:
==16854== definitely lost: 275,950 bytes in 12 blocks
==16854== indirectly lost: 55,727 bytes in 101 blocks
==16854== possibly lost: 0 bytes in 0 blocks
==16854== still reachable: 73,352 bytes in 5 blocks
==16854== suppressed: 0 bytes in 0 blocks
==16854== Reachable blocks (those to which a pointer was found) are not shown.
==16854== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16854==
==16854== For counts of detected and suppressed errors, rerun with: -v
==16854== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/debug_log.json
RUN: test/test-cases/regression/config-include.json
===================================================
==16930== Memcheck, a memory error detector
==16930== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16930== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16930== Command: ./regression_tests .././test/test-cases/regression/config-include.json
==16930==
:test-result: PASS config-include.json:Include (1/6)
:test-result: PASS config-include.json:Include (2/6)
:test-result: PASS config-include.json:Include (3/6)
:test-result: PASS config-include.json:Include (4/6)
:test-result: PASS config-include.json:Include (5/6)
:test-result: PASS config-include.json:Include (6/6)
==16930==
==16930== HEAP SUMMARY:
==16930== in use at exit: 1,999,771 bytes in 512 blocks
==16930== total heap usage: 31,201 allocs, 30,689 frees, 3,869,564 bytes allocated
==16930==
==16930== 1,250 bytes in 6 blocks are definitely lost in loss record 60 of 83
==16930== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16930== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16930== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16930== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16930== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 2,448 bytes in 6 blocks are definitely lost in loss record 64 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 2,808 (648 direct, 2,160 indirect) bytes in 6 blocks are definitely lost in loss record 65 of 83
==16930== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16930== by 0x5328700: pcre_study (pcre_study.c:1572)
==16930== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16930== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16930== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 4,097 bytes in 1 blocks are definitely lost in loss record 66 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16930== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16930== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16930== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16930== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 4,097 bytes in 1 blocks are definitely lost in loss record 67 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C1C8EC: std::ostream::put(char) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x413A48: endl<char, std::char_traits<char> > (ostream:591)
==16930== by 0x413A48: operator<< (ostream:113)
==16930== by 0x413A48: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16930== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16930== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==16930== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 8,196 bytes in 4 blocks are definitely lost in loss record 69 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16930== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16930== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16930== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16930== by 0x42F380: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:369)
==16930== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16930== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==16930== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 70 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16930== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16930== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16930== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16930== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 49,488 bytes in 6 blocks are definitely lost in loss record 76 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x4476CA: allocate (new_allocator.h:104)
==16930== by 0x4476CA: allocate (alloc_traits.h:491)
==16930== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16930== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16930== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16930== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16930== by 0x446EFD: rehash (hashtable.h:1936)
==16930== by 0x446EFD: reserve (hashtable_policy.h:957)
==16930== by 0x446EFD: reserve (unordered_map.h:1505)
==16930== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16930== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16930== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16930== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 77 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16930== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 78 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16930== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 79 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16930== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 49,872 (384 direct, 49,488 indirect) bytes in 6 blocks are definitely lost in loss record 80 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16930== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 72,917 (384 direct, 72,533 indirect) bytes in 6 blocks are definitely lost in loss record 82 of 83
==16930== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16930== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16930== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16930== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== 1,572,864 bytes in 6 blocks are definitely lost in loss record 83 of 83
==16930== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16930== by 0x40BA0F: Rules (rules.h:63)
==16930== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16930== by 0x407CCC: main (regression.cc:387)
==16930==
==16930== LEAK SUMMARY:
==16930== definitely lost: 1,645,560 bytes in 67 blocks
==16930== indirectly lost: 280,859 bytes in 440 blocks
==16930== possibly lost: 0 bytes in 0 blocks
==16930== still reachable: 73,352 bytes in 5 blocks
==16930== suppressed: 0 bytes in 0 blocks
==16930== Reachable blocks (those to which a pointer was found) are not shown.
==16930== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16930==
==16930== For counts of detected and suppressed errors, rerun with: -v
==16930== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/config-include.json
RUN: test/test-cases/regression/variable-PATH_INFO.json
=======================================================
==16895== Memcheck, a memory error detector
==16895== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16895== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16895== Command: ./regression_tests .././test/test-cases/regression/variable-PATH_INFO.json
==16895==
:test-result: PASS variable-PATH_INFO.json:Testing Variables :: PATH_INFO (1/3)
:test-result: PASS variable-PATH_INFO.json:Testing Variables :: PATH_INFO (2/3)
:test-result: PASS variable-PATH_INFO.json:Testing Variables :: PATH_INFO (3/3)
==16895==
==16895== HEAP SUMMARY:
==16895== in use at exit: 1,040,871 bytes in 295 blocks
==16895== total heap usage: 16,886 allocs, 16,591 frees, 2,012,986 bytes allocated
==16895==
==16895== 529 bytes in 3 blocks are definitely lost in loss record 69 of 92
==16895== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16895== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16895== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16895== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16895== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 1,224 bytes in 3 blocks are definitely lost in loss record 74 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 1,404 (324 direct, 1,080 indirect) bytes in 3 blocks are definitely lost in loss record 75 of 92
==16895== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16895== by 0x5328700: pcre_study (pcre_study.c:1572)
==16895== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16895== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16895== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 2,049 bytes in 1 blocks are definitely lost in loss record 76 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16895== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16895== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16895== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16895== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 4,098 bytes in 2 blocks are definitely lost in loss record 77 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16895== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16895== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16895== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16895== by 0x414CA1: modsecurity::Transaction::processLogging(int) (transaction.cc:1134)
==16895== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16895== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16895== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16895== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16895== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 24,744 bytes in 3 blocks are definitely lost in loss record 85 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x4476CA: allocate (new_allocator.h:104)
==16895== by 0x4476CA: allocate (alloc_traits.h:491)
==16895== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16895== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16895== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16895== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16895== by 0x446EFD: rehash (hashtable.h:1936)
==16895== by 0x446EFD: reserve (hashtable_policy.h:957)
==16895== by 0x446EFD: reserve (unordered_map.h:1505)
==16895== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16895== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16895== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16895== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 86 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16895== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 87 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16895== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 88 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16895== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 89 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16895== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 38,529 (192 direct, 38,337 indirect) bytes in 3 blocks are definitely lost in loss record 90 of 92
==16895== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16895== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16895== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16895== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== 786,432 bytes in 3 blocks are definitely lost in loss record 92 of 92
==16895== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16895== by 0x40BA0F: Rules (rules.h:63)
==16895== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16895== by 0x407CCC: main (regression.cc:387)
==16895==
==16895== LEAK SUMMARY:
==16895== definitely lost: 820,912 bytes in 34 blocks
==16895== indirectly lost: 146,607 bytes in 256 blocks
==16895== possibly lost: 0 bytes in 0 blocks
==16895== still reachable: 73,352 bytes in 5 blocks
==16895== suppressed: 0 bytes in 0 blocks
==16895== Reachable blocks (those to which a pointer was found) are not shown.
==16895== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16895==
==16895== For counts of detected and suppressed errors, rerun with: -v
==16895== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-PATH_INFO.json
RUN: test/test-cases/regression/action-xmlns.json
=================================================
==16900== Memcheck, a memory error detector
==16900== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16900== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16900== Command: ./regression_tests .././test/test-cases/regression/action-xmlns.json
==16900==
:test-result: PASS action-xmlns.json:Testing XML request body parser (validate ok)
:test-result: PASS action-xmlns.json:Testing action :: XMLNS (parser error 1)
:test-result: PASS action-xmlns.json:Testing action :: XMLNS (parser error 2)
:test-result: PASS action-xmlns.json:Testing action :: XMLNS (parser error 3)
==16900==
==16900== HEAP SUMMARY:
==16900== in use at exit: 1,416,832 bytes in 3,683 blocks
==16900== total heap usage: 12,687 allocs, 9,004 frees, 2,269,603 bytes allocated
==16900==
==16900== 204 bytes in 1 blocks are definitely lost in loss record 676 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16900== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16900== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16900== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 384 (72 direct, 312 indirect) bytes in 3 blocks are definitely lost in loss record 694 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x471962: yy::seclang_parser::parse() (seclang-parser.yy:1217)
==16900== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16900== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 441 (72 direct, 369 indirect) bytes in 3 blocks are definitely lost in loss record 698 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x47186D: yy::seclang_parser::parse() (seclang-parser.yy:725)
==16900== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16900== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 701 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x5328700: pcre_study (pcre_study.c:1572)
==16900== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16900== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16900== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 538 bytes in 3 blocks are definitely lost in loss record 707 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16900== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16900== by 0x40C91D: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:162)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 583 (456 direct, 127 indirect) bytes in 3 blocks are definitely lost in loss record 709 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x46DBE8: yy::seclang_parser::parse() (seclang-parser.yy:1150)
==16900== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16900== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 1,404 (324 direct, 1,080 indirect) bytes in 3 blocks are definitely lost in loss record 743 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x5328700: pcre_study (pcre_study.c:1572)
==16900== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16900== by 0x40C91D: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:162)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 1,440 (336 direct, 1,104 indirect) bytes in 2 blocks are definitely lost in loss record 744 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==16900== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==16900== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==16900== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16900== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 1,725 (360 direct, 1,365 indirect) bytes in 3 blocks are definitely lost in loss record 754 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x449E64: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==16900== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==16900== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16900== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 3,171 (1,632 direct, 1,539 indirect) bytes in 4 blocks are definitely lost in loss record 763 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 4,097 bytes in 1 blocks are definitely lost in loss record 765 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16900== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16900== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16900== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16900== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16900== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16900== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16900== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==16900== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 8,248 bytes in 1 blocks are definitely lost in loss record 769 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x4476CA: allocate (new_allocator.h:104)
==16900== by 0x4476CA: allocate (alloc_traits.h:491)
==16900== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16900== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16900== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16900== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16900== by 0x446EFD: rehash (hashtable.h:1936)
==16900== by 0x446EFD: reserve (hashtable_policy.h:957)
==16900== by 0x446EFD: reserve (unordered_map.h:1505)
==16900== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16900== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16900== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16900== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 770 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16900== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 771 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16900== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 772 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16900== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 773 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16900== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 14,447 (64 direct, 14,383 indirect) bytes in 1 blocks are definitely lost in loss record 774 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16900== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16900== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 16,187 (3,576 direct, 12,611 indirect) bytes in 3 blocks are definitely lost in loss record 775 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x42818E: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:127)
==16900== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 100,182 (216 direct, 99,966 indirect) bytes in 3 blocks are definitely lost in loss record 782 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x40B4D6: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 262,144 bytes in 1 blocks are possibly lost in loss record 783 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x40BA0F: Rules (rules.h:63)
==16900== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 262,144 bytes in 1 blocks are definitely lost in loss record 784 of 786
==16900== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16900== by 0x40BA0F: Rules (rules.h:63)
==16900== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== 531,515 (4,368 direct, 527,147 indirect) bytes in 3 blocks are definitely lost in loss record 786 of 786
==16900== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16900== by 0x40B54F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16900== by 0x407CCC: main (regression.cc:387)
==16900==
==16900== LEAK SUMMARY:
==16900== definitely lost: 287,071 bytes in 43 blocks
==16900== indirectly lost: 693,355 bytes in 267 blocks
==16900== possibly lost: 262,144 bytes in 1 blocks
==16900== still reachable: 174,262 bytes in 3,372 blocks
==16900== suppressed: 0 bytes in 0 blocks
==16900== Reachable blocks (those to which a pointer was found) are not shown.
==16900== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16900==
==16900== For counts of detected and suppressed errors, rerun with: -v
==16900== ERROR SUMMARY: 22 errors from 22 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-xmlns.json
RUN: test/test-cases/regression/collection-tx.json
==================================================
==16912== Memcheck, a memory error detector
==16912== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16912== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16912== Command: ./regression_tests .././test/test-cases/regression/collection-tx.json
==16912==
:test-result: PASS collection-tx.json:Testing collection :: TX (1/4)
:test-result: PASS collection-tx.json:Testing collection :: TX (2/4)
:test-result: PASS collection-tx.json:Testing collection :: TX (3/4)
:test-result: PASS collection-tx.json:Testing collection :: TX (4/4)
==16912==
==16912== HEAP SUMMARY:
==16912== in use at exit: 1,385,815 bytes in 498 blocks
==16912== total heap usage: 23,716 allocs, 23,218 frees, 2,793,880 bytes allocated
==16912==
==16912== 320 bytes in 4 blocks are definitely lost in loss record 66 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x447899: allocate (new_allocator.h:104)
==16912== by 0x447899: allocate (alloc_traits.h:491)
==16912== by 0x447899: std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> > >::_M_allocate_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (hashtable_policy.h:1949)
==16912== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:1565)
==16912== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:671)
==16912== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:726)
==16912== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (unordered_map.h:1128)
==16912== by 0x446F2C: modsecurity::collection::backend::InMemoryPerProcess::store(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in_memory-per_process.cc:43)
==16912== by 0x445C0A: modsecurity::collection::backend::InMemoryPerProcess::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in_memory-per_process.cc:50)
==16912== by 0x44412A: modsecurity::collection::Collections::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (collections.cc:85)
==16912== by 0x48B14A: modsecurity::actions::SetVar::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (set_var.cc:141)
==16912== by 0x43040E: evaluate (action.h:114)
==16912== by 0x43040E: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==16912== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16912== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==16912== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 636 bytes in 4 blocks are definitely lost in loss record 70 of 102
==16912== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16912== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16912== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16912== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16912== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 1,632 bytes in 4 blocks are definitely lost in loss record 81 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 1,872 (432 direct, 1,440 indirect) bytes in 4 blocks are definitely lost in loss record 83 of 102
==16912== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16912== by 0x5328700: pcre_study (pcre_study.c:1572)
==16912== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16912== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16912== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 8,193 bytes in 1 blocks are definitely lost in loss record 86 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16912== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16912== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16912== by 0x41F10F: modsecurity::Transaction::appendRequestBody(unsigned char const*, unsigned long) (transaction.cc:773)
==16912== by 0x40D3C7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:250)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 8,193 bytes in 1 blocks are definitely lost in loss record 87 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16912== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16912== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16912== by 0x430632: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:503)
==16912== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16912== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==16912== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 8,194 bytes in 2 blocks are definitely lost in loss record 88 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16912== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16912== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16912== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16912== by 0x42F73A: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:380)
==16912== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16912== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==16912== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16912== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16912== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16912== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16912== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 32,992 bytes in 4 blocks are definitely lost in loss record 95 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x4476CA: allocate (new_allocator.h:104)
==16912== by 0x4476CA: allocate (alloc_traits.h:491)
==16912== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16912== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16912== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16912== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16912== by 0x446EFD: rehash (hashtable.h:1936)
==16912== by 0x446EFD: reserve (hashtable_policy.h:957)
==16912== by 0x446EFD: reserve (unordered_map.h:1505)
==16912== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16912== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16912== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16912== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 96 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16912== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 97 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16912== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 98 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16912== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 99 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16912== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 60,097 (256 direct, 59,841 indirect) bytes in 4 blocks are definitely lost in loss record 100 of 102
==16912== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16912== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16912== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16912== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== 1,048,576 bytes in 4 blocks are definitely lost in loss record 102 of 102
==16912== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16912== by 0x40BA0F: Rules (rules.h:63)
==16912== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16912== by 0x407CCC: main (regression.cc:387)
==16912==
==16912== LEAK SUMMARY:
==16912== definitely lost: 1,111,000 bytes in 49 blocks
==16912== indirectly lost: 201,463 bytes in 444 blocks
==16912== possibly lost: 0 bytes in 0 blocks
==16912== still reachable: 73,352 bytes in 5 blocks
==16912== suppressed: 0 bytes in 0 blocks
==16912== Reachable blocks (those to which a pointer was found) are not shown.
==16912== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16912==
==16912== For counts of detected and suppressed errors, rerun with: -v
==16912== ERROR SUMMARY: 15 errors from 15 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/collection-tx.json
RUN: test/test-cases/regression/config-body_limits.json
=======================================================
==16896== Memcheck, a memory error detector
==16896== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16896== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16896== Command: ./regression_tests .././test/test-cases/regression/config-body_limits.json
==16896==
:test-result: PASS config-body_limits.json:SecRequestBodyLimitAction ProcessPartial
:test-result: PASS config-body_limits.json:SecRequestBodyLimitAction Reject
:test-result: PASS config-body_limits.json:SecResponseBodyLimitAction ProcessPartial
:test-result: PASS config-body_limits.json:SecResponseBodyLimitAction Reject
==16896==
==16896== HEAP SUMMARY:
==16896== in use at exit: 1,354,346 bytes in 325 blocks
==16896== total heap usage: 21,110 allocs, 20,785 frees, 2,509,130 bytes allocated
==16896==
==16896== 292 bytes in 4 blocks are definitely lost in loss record 38 of 87
==16896== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16896== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16896== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16896== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16896== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 816 (432 direct, 384 indirect) bytes in 4 blocks are definitely lost in loss record 68 of 87
==16896== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16896== by 0x5328700: pcre_study (pcre_study.c:1572)
==16896== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16896== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16896== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 1,025 bytes in 1 blocks are definitely lost in loss record 70 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16896== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16896== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16896== by 0x41F2D4: modsecurity::Transaction::appendRequestBody(unsigned char const*, unsigned long) (transaction.cc:780)
==16896== by 0x40D3C7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:250)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 1,632 bytes in 4 blocks are definitely lost in loss record 71 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 6,147 bytes in 3 blocks are definitely lost in loss record 72 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16896== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16896== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16896== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16896== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16896== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16896== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16896== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16896== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16896== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 32,992 bytes in 4 blocks are definitely lost in loss record 80 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x4476CA: allocate (new_allocator.h:104)
==16896== by 0x4476CA: allocate (alloc_traits.h:491)
==16896== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16896== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16896== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16896== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16896== by 0x446EFD: rehash (hashtable.h:1936)
==16896== by 0x446EFD: reserve (hashtable_policy.h:957)
==16896== by 0x446EFD: reserve (unordered_map.h:1505)
==16896== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16896== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16896== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16896== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 81 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16896== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 82 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16896== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 83 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16896== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 84 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16896== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 47,756 (256 direct, 47,500 indirect) bytes in 4 blocks are definitely lost in loss record 85 of 87
==16896== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16896== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16896== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16896== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== 1,048,576 bytes in 4 blocks are definitely lost in loss record 87 of 87
==16896== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16896== by 0x40BA0F: Rules (rules.h:63)
==16896== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16896== by 0x407CCC: main (regression.cc:387)
==16896==
==16896== LEAK SUMMARY:
==16896== definitely lost: 1,092,928 bytes in 45 blocks
==16896== indirectly lost: 188,066 bytes in 275 blocks
==16896== possibly lost: 0 bytes in 0 blocks
==16896== still reachable: 73,352 bytes in 5 blocks
==16896== suppressed: 0 bytes in 0 blocks
==16896== Reachable blocks (those to which a pointer was found) are not shown.
==16896== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16896==
==16896== For counts of detected and suppressed errors, rerun with: -v
==16896== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/config-body_limits.json
RUN: test/test-cases/regression/variable-RESPONSE_BODY.json
===========================================================
==16924== Memcheck, a memory error detector
==16924== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16924== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16924== Command: ./regression_tests .././test/test-cases/regression/variable-RESPONSE_BODY.json
==16924==
:test-result: PASS variable-RESPONSE_BODY.json:Testing Variables :: RESPONSE_BODY
==16924==
==16924== HEAP SUMMARY:
==16924== in use at exit: 401,009 bytes in 92 blocks
==16924== total heap usage: 7,519 allocs, 7,427 frees, 960,750 bytes allocated
==16924==
==16924== 170 bytes in 1 blocks are definitely lost in loss record 59 of 81
==16924== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16924== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16924== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16924== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16924== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 408 bytes in 1 blocks are definitely lost in loss record 63 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 64 of 81
==16924== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16924== by 0x5328700: pcre_study (pcre_study.c:1572)
==16924== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16924== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16924== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 2,049 bytes in 1 blocks are definitely lost in loss record 66 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16924== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16924== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16924== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16924== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16924== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16924== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16924== by 0x430632: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:503)
==16924== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16924== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16924== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,248 bytes in 1 blocks are definitely lost in loss record 73 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x4476CA: allocate (new_allocator.h:104)
==16924== by 0x4476CA: allocate (alloc_traits.h:491)
==16924== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16924== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16924== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16924== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16924== by 0x446EFD: rehash (hashtable.h:1936)
==16924== by 0x446EFD: reserve (hashtable_policy.h:957)
==16924== by 0x446EFD: reserve (unordered_map.h:1505)
==16924== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16924== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16924== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16924== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16924== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16924== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16924== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16924== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16924== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16924== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16924== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16924== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 12,156 (64 direct, 12,092 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 81
==16924== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16924== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16924== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16924== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== 262,144 bytes in 1 blocks are definitely lost in loss record 81 of 81
==16924== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16924== by 0x40BA0F: Rules (rules.h:63)
==16924== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16924== by 0x407CCC: main (regression.cc:387)
==16924==
==16924== LEAK SUMMARY:
==16924== definitely lost: 273,999 bytes in 12 blocks
==16924== indirectly lost: 53,658 bytes in 75 blocks
==16924== possibly lost: 0 bytes in 0 blocks
==16924== still reachable: 73,352 bytes in 5 blocks
==16924== suppressed: 0 bytes in 0 blocks
==16924== Reachable blocks (those to which a pointer was found) are not shown.
==16924== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16924==
==16924== For counts of detected and suppressed errors, rerun with: -v
==16924== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-RESPONSE_BODY.json
RUN: test/test-cases/regression/action-ctl_request_body_processor.json
======================================================================
==16897== Memcheck, a memory error detector
==16897== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16897== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16897== Command: ./regression_tests .././test/test-cases/regression/action-ctl_request_body_processor.json
==16897==
:test-result: PASS action-ctl_request_body_processor.json:Testing CtlRequestBodyProcessor=XML (1)
:test-result: PASS action-ctl_request_body_processor.json:Testing CtlRequestBodyProcessor=XML (2)
body.xml:1: parser error : Document is empty
not a xml
^
:test-result: PASS action-ctl_request_body_processor.json:Testing CtlRequestBodyProcessor=XML (3)
==16897==
==16897== HEAP SUMMARY:
==16897== in use at exit: 1,041,035 bytes in 330 blocks
==16897== total heap usage: 17,544 allocs, 17,214 frees, 2,184,088 bytes allocated
==16897==
==16897== 516 bytes in 3 blocks are definitely lost in loss record 93 of 118
==16897== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16897== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16897== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16897== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16897== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 1,224 bytes in 3 blocks are definitely lost in loss record 97 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 1,404 (324 direct, 1,080 indirect) bytes in 3 blocks are definitely lost in loss record 99 of 118
==16897== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16897== by 0x5328700: pcre_study (pcre_study.c:1572)
==16897== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16897== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16897== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 2,049 bytes in 1 blocks are definitely lost in loss record 102 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C1C8EC: std::ostream::put(char) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x413A48: endl<char, std::char_traits<char> > (ostream:591)
==16897== by 0x413A48: operator<< (ostream:113)
==16897== by 0x413A48: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16897== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16897== by 0x414CA1: modsecurity::Transaction::processLogging(int) (transaction.cc:1134)
==16897== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 2,049 bytes in 1 blocks are definitely lost in loss record 103 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16897== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16897== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16897== by 0x43E9C3: debug (xml.h:56)
==16897== by 0x43E9C3: modsecurity::RequestBodyProcessor::XML::complete() (xml.cc:124)
==16897== by 0x41CBBB: modsecurity::Transaction::processRequestBody() (transaction.cc:597)
==16897== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 3,595 (840 direct, 2,755 indirect) bytes in 5 blocks are definitely lost in loss record 104 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==16897== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==16897== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==16897== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16897== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16897== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 4,097 bytes in 1 blocks are definitely lost in loss record 105 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16897== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16897== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16897== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16897== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==16897== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 24,744 bytes in 3 blocks are definitely lost in loss record 111 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x4476CA: allocate (new_allocator.h:104)
==16897== by 0x4476CA: allocate (alloc_traits.h:491)
==16897== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16897== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16897== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16897== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16897== by 0x446EFD: rehash (hashtable.h:1936)
==16897== by 0x446EFD: reserve (hashtable_policy.h:957)
==16897== by 0x446EFD: reserve (unordered_map.h:1505)
==16897== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16897== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16897== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16897== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 112 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16897== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 113 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16897== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 114 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16897== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 115 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16897== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 41,339 (192 direct, 41,147 indirect) bytes in 3 blocks are definitely lost in loss record 116 of 118
==16897== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16897== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16897== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16897== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== 786,432 bytes in 3 blocks are definitely lost in loss record 118 of 118
==16897== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16897== by 0x40BA0F: Rules (rules.h:63)
==16897== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16897== by 0x407CCC: main (regression.cc:387)
==16897==
==16897== LEAK SUMMARY:
==16897== definitely lost: 823,235 bytes in 38 blocks
==16897== indirectly lost: 143,958 bytes in 268 blocks
==16897== possibly lost: 0 bytes in 0 blocks
==16897== still reachable: 73,842 bytes in 24 blocks
==16897== suppressed: 0 bytes in 0 blocks
==16897== Reachable blocks (those to which a pointer was found) are not shown.
==16897== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16897==
==16897== For counts of detected and suppressed errors, rerun with: -v
==16897== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-ctl_request_body_processor.json
RUN: test/test-cases/regression/variable-QUERY_STRING.json
==========================================================
==16928== Memcheck, a memory error detector
==16928== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16928== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16928== Command: ./regression_tests .././test/test-cases/regression/variable-QUERY_STRING.json
==16928==
:test-result: PASS variable-QUERY_STRING.json:Testing Variables :: QUERY_STRING
==16928==
==16928== HEAP SUMMARY:
==16928== in use at exit: 401,459 bytes in 97 blocks
==16928== total heap usage: 7,575 allocs, 7,478 frees, 965,132 bytes allocated
==16928==
==16928== 175 bytes in 1 blocks are definitely lost in loss record 60 of 82
==16928== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16928== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16928== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16928== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16928== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==16928== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16928== by 0x5328700: pcre_study (pcre_study.c:1572)
==16928== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16928== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16928== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16928== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16928== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16928== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16928== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16928== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16928== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16928== by 0x41F93C: modsecurity::Transaction::processResponseBody() (transaction.cc:949)
==16928== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x4476CA: allocate (new_allocator.h:104)
==16928== by 0x4476CA: allocate (alloc_traits.h:491)
==16928== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16928== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16928== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16928== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16928== by 0x446EFD: rehash (hashtable.h:1936)
==16928== by 0x446EFD: reserve (hashtable_policy.h:957)
==16928== by 0x446EFD: reserve (unordered_map.h:1505)
==16928== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16928== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16928== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16928== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16928== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16928== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16928== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16928== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16928== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16928== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16928== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16928== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==16928== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16928== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16928== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16928== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==16928== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16928== by 0x40BA0F: Rules (rules.h:63)
==16928== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16928== by 0x407CCC: main (regression.cc:387)
==16928==
==16928== LEAK SUMMARY:
==16928== definitely lost: 274,004 bytes in 12 blocks
==16928== indirectly lost: 54,103 bytes in 80 blocks
==16928== possibly lost: 0 bytes in 0 blocks
==16928== still reachable: 73,352 bytes in 5 blocks
==16928== suppressed: 0 bytes in 0 blocks
==16928== Reachable blocks (those to which a pointer was found) are not shown.
==16928== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16928==
==16928== For counts of detected and suppressed errors, rerun with: -v
==16928== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-QUERY_STRING.json
RUN: test/test-cases/regression/variable-REQUEST_LINE.json
==========================================================
==16878== Memcheck, a memory error detector
==16878== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16878== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16878== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_LINE.json
==16878==
:test-result: PASS variable-REQUEST_LINE.json:Testing Variables :: REQUEST_LINE
==16878==
==16878== HEAP SUMMARY:
==16878== in use at exit: 401,071 bytes in 92 blocks
==16878== total heap usage: 7,525 allocs, 7,433 frees, 961,786 bytes allocated
==16878==
==16878== 232 bytes in 1 blocks are definitely lost in loss record 59 of 81
==16878== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16878== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16878== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16878== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16878== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 408 bytes in 1 blocks are definitely lost in loss record 63 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 64 of 81
==16878== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16878== by 0x5328700: pcre_study (pcre_study.c:1572)
==16878== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16878== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16878== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 2,049 bytes in 1 blocks are definitely lost in loss record 66 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16878== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16878== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16878== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16878== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16878== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16878== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16878== by 0x41F93C: modsecurity::Transaction::processResponseBody() (transaction.cc:949)
==16878== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,248 bytes in 1 blocks are definitely lost in loss record 73 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x4476CA: allocate (new_allocator.h:104)
==16878== by 0x4476CA: allocate (alloc_traits.h:491)
==16878== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16878== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16878== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16878== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16878== by 0x446EFD: rehash (hashtable.h:1936)
==16878== by 0x446EFD: reserve (hashtable_policy.h:957)
==16878== by 0x446EFD: reserve (unordered_map.h:1505)
==16878== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16878== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16878== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16878== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16878== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16878== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16878== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16878== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16878== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16878== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16878== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16878== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 12,156 (64 direct, 12,092 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 81
==16878== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16878== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16878== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16878== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== 262,144 bytes in 1 blocks are definitely lost in loss record 81 of 81
==16878== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16878== by 0x40BA0F: Rules (rules.h:63)
==16878== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16878== by 0x407CCC: main (regression.cc:387)
==16878==
==16878== LEAK SUMMARY:
==16878== definitely lost: 274,061 bytes in 12 blocks
==16878== indirectly lost: 53,658 bytes in 75 blocks
==16878== possibly lost: 0 bytes in 0 blocks
==16878== still reachable: 73,352 bytes in 5 blocks
==16878== suppressed: 0 bytes in 0 blocks
==16878== Reachable blocks (those to which a pointer was found) are not shown.
==16878== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16878==
==16878== For counts of detected and suppressed errors, rerun with: -v
==16878== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_LINE.json
RUN: test/test-cases/regression/variable-RESPONSE_HEADERS.json
==============================================================
==16885== Memcheck, a memory error detector
==16885== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16885== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16885== Command: ./regression_tests .././test/test-cases/regression/variable-RESPONSE_HEADERS.json
==16885==
:test-result: PASS variable-RESPONSE_HEADERS.json:Testing Variables :: RESPONSE_HEADERS
==16885==
==16885== HEAP SUMMARY:
==16885== in use at exit: 405,832 bytes in 122 blocks
==16885== total heap usage: 7,798 allocs, 7,676 frees, 990,393 bytes allocated
==16885==
==16885== 229 bytes in 1 blocks are definitely lost in loss record 83 of 107
==16885== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16885== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16885== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16885== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16885== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 408 bytes in 1 blocks are definitely lost in loss record 86 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 87 of 107
==16885== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16885== by 0x5328700: pcre_study (pcre_study.c:1572)
==16885== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16885== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16885== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 4,097 bytes in 1 blocks are definitely lost in loss record 92 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16885== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16885== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16885== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16885== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16885== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16885== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16885== by 0x42F73A: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:380)
==16885== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16885== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==16885== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,248 bytes in 1 blocks are definitely lost in loss record 99 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x4476CA: allocate (new_allocator.h:104)
==16885== by 0x4476CA: allocate (alloc_traits.h:491)
==16885== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16885== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16885== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16885== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16885== by 0x446EFD: rehash (hashtable.h:1936)
==16885== by 0x446EFD: reserve (hashtable_policy.h:957)
==16885== by 0x446EFD: reserve (unordered_map.h:1505)
==16885== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16885== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16885== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16885== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 100 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16885== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 101 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16885== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 102 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16885== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 103 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16885== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16885== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16885== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16885== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16885== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 14,872 (64 direct, 14,808 indirect) bytes in 1 blocks are definitely lost in loss record 105 of 107
==16885== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16885== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16885== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16885== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== 262,144 bytes in 1 blocks are definitely lost in loss record 107 of 107
==16885== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16885== by 0x40BA0F: Rules (rules.h:63)
==16885== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16885== by 0x407CCC: main (regression.cc:387)
==16885==
==16885== LEAK SUMMARY:
==16885== definitely lost: 276,106 bytes in 12 blocks
==16885== indirectly lost: 56,374 bytes in 105 blocks
==16885== possibly lost: 0 bytes in 0 blocks
==16885== still reachable: 73,352 bytes in 5 blocks
==16885== suppressed: 0 bytes in 0 blocks
==16885== Reachable blocks (those to which a pointer was found) are not shown.
==16885== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16885==
==16885== For counts of detected and suppressed errors, rerun with: -v
==16885== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-RESPONSE_HEADERS.json
RUN: test/test-cases/regression/operator-rx.json
================================================
==16920== Memcheck, a memory error detector
==16920== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16920== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16920== Command: ./regression_tests .././test/test-cases/regression/operator-rx.json
==16920==
:test-result: PASS operator-rx.json:Testing Operator :: @rx
==16920==
==16920== HEAP SUMMARY:
==16920== in use at exit: 402,420 bytes in 109 blocks
==16920== total heap usage: 7,601 allocs, 7,492 frees, 974,865 bytes allocated
==16920==
==16920== 117 bytes in 1 blocks are definitely lost in loss record 65 of 93
==16920== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16920== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16920== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16920== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16920== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 408 bytes in 1 blocks are definitely lost in loss record 74 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 93
==16920== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16920== by 0x5328700: pcre_study (pcre_study.c:1572)
==16920== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16920== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16920== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 727 (168 direct, 559 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==16920== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==16920== by 0x4717DE: yy::seclang_parser::parse() (seclang-parser.yy:431)
==16920== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16920== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16920== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 2,049 bytes in 1 blocks are definitely lost in loss record 78 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16920== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16920== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16920== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16920== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16920== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16920== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16920== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16920== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,248 bytes in 1 blocks are definitely lost in loss record 85 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x4476CA: allocate (new_allocator.h:104)
==16920== by 0x4476CA: allocate (alloc_traits.h:491)
==16920== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16920== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16920== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16920== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16920== by 0x446EFD: rehash (hashtable.h:1936)
==16920== by 0x446EFD: reserve (hashtable_policy.h:957)
==16920== by 0x446EFD: reserve (unordered_map.h:1505)
==16920== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16920== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16920== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16920== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 86 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16920== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 87 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16920== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 88 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16920== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16920== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 90 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16920== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16920== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16920== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16920== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 12,893 (64 direct, 12,829 indirect) bytes in 1 blocks are definitely lost in loss record 91 of 93
==16920== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16920== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16920== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16920== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== 262,144 bytes in 1 blocks are definitely lost in loss record 93 of 93
==16920== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16920== by 0x40BA0F: Rules (rules.h:63)
==16920== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16920== by 0x407CCC: main (regression.cc:387)
==16920==
==16920== LEAK SUMMARY:
==16920== definitely lost: 274,114 bytes in 13 blocks
==16920== indirectly lost: 54,954 bytes in 91 blocks
==16920== possibly lost: 0 bytes in 0 blocks
==16920== still reachable: 73,352 bytes in 5 blocks
==16920== suppressed: 0 bytes in 0 blocks
==16920== Reachable blocks (those to which a pointer was found) are not shown.
==16920== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16920==
==16920== For counts of detected and suppressed errors, rerun with: -v
==16920== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/operator-rx.json
RUN: test/test-cases/regression/variable-ARGS.json
==================================================
==16923== Memcheck, a memory error detector
==16923== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16923== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16923== Command: ./regression_tests .././test/test-cases/regression/variable-ARGS.json
==16923==
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - GET (1/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - GET (2/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - POST (3/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - POST (4/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - POST (5/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - POST (6/7)
:test-result: PASS variable-ARGS.json:Testing Variables :: ARGS - POST (7/7)
==16923==
==16923== HEAP SUMMARY:
==16923== in use at exit: 2,316,641 bytes in 637 blocks
==16923== total heap usage: 35,333 allocs, 34,696 frees, 4,100,495 bytes allocated
==16923==
==16923== 919 bytes in 7 blocks are definitely lost in loss record 73 of 98
==16923== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16923== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16923== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16923== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16923== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 2,049 bytes in 1 blocks are definitely lost in loss record 76 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16923== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16923== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16923== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16923== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 2,049 bytes in 1 blocks are definitely lost in loss record 77 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16923== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16923== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16923== by 0x414D43: modsecurity::Transaction::processLogging(int) (transaction.cc:1171)
==16923== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 2,049 bytes in 1 blocks are definitely lost in loss record 78 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16923== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16923== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16923== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16923== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 2,856 bytes in 7 blocks are definitely lost in loss record 80 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 3,276 (756 direct, 2,520 indirect) bytes in 7 blocks are definitely lost in loss record 81 of 98
==16923== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16923== by 0x5328700: pcre_study (pcre_study.c:1572)
==16923== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16923== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16923== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 4,098 bytes in 2 blocks are definitely lost in loss record 82 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16923== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16923== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16923== by 0x42014F: modsecurity::Transaction::appendResponseBody(unsigned char const*, unsigned long) (transaction.cc:1022)
==16923== by 0x40D5B7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:271)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 4,098 bytes in 2 blocks are definitely lost in loss record 83 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16923== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16923== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16923== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16923== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==16923== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 85 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16923== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16923== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16923== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16923== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 57,736 bytes in 7 blocks are definitely lost in loss record 91 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x4476CA: allocate (new_allocator.h:104)
==16923== by 0x4476CA: allocate (alloc_traits.h:491)
==16923== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16923== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16923== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16923== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16923== by 0x446EFD: rehash (hashtable.h:1936)
==16923== by 0x446EFD: reserve (hashtable_policy.h:957)
==16923== by 0x446EFD: reserve (unordered_map.h:1505)
==16923== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16923== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16923== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16923== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 58,184 (448 direct, 57,736 indirect) bytes in 7 blocks are definitely lost in loss record 92 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16923== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 58,184 (448 direct, 57,736 indirect) bytes in 7 blocks are definitely lost in loss record 93 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16923== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 58,184 (448 direct, 57,736 indirect) bytes in 7 blocks are definitely lost in loss record 94 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16923== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 58,184 (448 direct, 57,736 indirect) bytes in 7 blocks are definitely lost in loss record 95 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16923== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 87,649 (448 direct, 87,201 indirect) bytes in 7 blocks are definitely lost in loss record 97 of 98
==16923== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16923== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16923== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16923== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== 1,835,008 bytes in 7 blocks are definitely lost in loss record 98 of 98
==16923== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16923== by 0x40BA0F: Rules (rules.h:63)
==16923== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16923== by 0x407CCC: main (regression.cc:387)
==16923==
==16923== LEAK SUMMARY:
==16923== definitely lost: 1,914,410 bytes in 78 blocks
==16923== indirectly lost: 328,879 bytes in 554 blocks
==16923== possibly lost: 0 bytes in 0 blocks
==16923== still reachable: 73,352 bytes in 5 blocks
==16923== suppressed: 0 bytes in 0 blocks
==16923== Reachable blocks (those to which a pointer was found) are not shown.
==16923== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16923==
==16923== For counts of detected and suppressed errors, rerun with: -v
==16923== ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-ARGS.json
RUN: test/test-cases/regression/issue-394.json
==============================================
==16911== Memcheck, a memory error detector
==16911== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16911== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16911== Command: ./regression_tests .././test/test-cases/regression/issue-394.json
==16911==
:test-result: PASS issue-394.json:Segmentation fault when uploading file with SecStreamInBodyInspection enabled
==16911==
==16911== HEAP SUMMARY:
==16911== in use at exit: 398,083 bytes in 62 blocks
==16911== total heap usage: 7,377 allocs, 7,315 frees, 948,357 bytes allocated
==16911==
==16911== 73 bytes in 1 blocks are definitely lost in loss record 16 of 62
==16911== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16911== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16911== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16911== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16911== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 204 (108 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 44 of 62
==16911== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16911== by 0x5328700: pcre_study (pcre_study.c:1572)
==16911== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16911== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16911== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 408 bytes in 1 blocks are definitely lost in loss record 45 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 1,025 bytes in 1 blocks are definitely lost in loss record 47 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16911== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16911== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16911== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16911== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16911== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16911== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16911== by 0x42014F: modsecurity::Transaction::appendResponseBody(unsigned char const*, unsigned long) (transaction.cc:1022)
==16911== by 0x40D5B7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:271)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,248 bytes in 1 blocks are definitely lost in loss record 54 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x4476CA: allocate (new_allocator.h:104)
==16911== by 0x4476CA: allocate (alloc_traits.h:491)
==16911== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16911== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16911== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16911== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16911== by 0x446EFD: rehash (hashtable.h:1936)
==16911== by 0x446EFD: reserve (hashtable_policy.h:957)
==16911== by 0x446EFD: reserve (unordered_map.h:1505)
==16911== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16911== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16911== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16911== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 55 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16911== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 56 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16911== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 57 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16911== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 58 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16911== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 59 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16911== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16911== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16911== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16911== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 10,615 (64 direct, 10,551 indirect) bytes in 1 blocks are definitely lost in loss record 60 of 62
==16911== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16911== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16911== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16911== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== 262,144 bytes in 1 blocks are definitely lost in loss record 62 of 62
==16911== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16911== by 0x40BA0F: Rules (rules.h:63)
==16911== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16911== by 0x407CCC: main (regression.cc:387)
==16911==
==16911== LEAK SUMMARY:
==16911== definitely lost: 272,878 bytes in 12 blocks
==16911== indirectly lost: 51,853 bytes in 45 blocks
==16911== possibly lost: 0 bytes in 0 blocks
==16911== still reachable: 73,352 bytes in 5 blocks
==16911== suppressed: 0 bytes in 0 blocks
==16911== Reachable blocks (those to which a pointer was found) are not shown.
==16911== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16911==
==16911== For counts of detected and suppressed errors, rerun with: -v
==16911== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/issue-394.json
RUN: test/test-cases/regression/variable-TIME_MON.json
======================================================
==16916== Memcheck, a memory error detector
==16916== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16916== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16916== Command: ./regression_tests .././test/test-cases/regression/variable-TIME_MON.json
==16916==
:test-result: PASS variable-TIME_MON.json:Testing Variables :: TIME_MON
==16916==
==16916== HEAP SUMMARY:
==16916== in use at exit: 401,471 bytes in 97 blocks
==16916== total heap usage: 7,575 allocs, 7,478 frees, 969,378 bytes allocated
==16916==
==16916== 187 bytes in 1 blocks are definitely lost in loss record 60 of 82
==16916== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16916== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16916== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16916== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16916== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==16916== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16916== by 0x5328700: pcre_study (pcre_study.c:1572)
==16916== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16916== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16916== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16916== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16916== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16916== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16916== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16916== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16916== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16916== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==16916== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x4476CA: allocate (new_allocator.h:104)
==16916== by 0x4476CA: allocate (alloc_traits.h:491)
==16916== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16916== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16916== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16916== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16916== by 0x446EFD: rehash (hashtable.h:1936)
==16916== by 0x446EFD: reserve (hashtable_policy.h:957)
==16916== by 0x446EFD: reserve (unordered_map.h:1505)
==16916== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16916== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16916== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16916== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16916== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16916== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16916== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16916== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16916== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16916== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16916== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16916== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==16916== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16916== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16916== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16916== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==16916== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16916== by 0x40BA0F: Rules (rules.h:63)
==16916== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16916== by 0x407CCC: main (regression.cc:387)
==16916==
==16916== LEAK SUMMARY:
==16916== definitely lost: 274,016 bytes in 12 blocks
==16916== indirectly lost: 54,103 bytes in 80 blocks
==16916== possibly lost: 0 bytes in 0 blocks
==16916== still reachable: 73,352 bytes in 5 blocks
==16916== suppressed: 0 bytes in 0 blocks
==16916== Reachable blocks (those to which a pointer was found) are not shown.
==16916== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16916==
==16916== For counts of detected and suppressed errors, rerun with: -v
==16916== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-TIME_MON.json
RUN: test/test-cases/regression/misc.json
=========================================
==16904== Memcheck, a memory error detector
==16904== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16904== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16904== Command: ./regression_tests .././test/test-cases/regression/misc.json
==16904==
:test-result: PASS misc.json:Testing action :: SecRule directives should be case insensitive
==16904==
==16904== HEAP SUMMARY:
==16904== in use at exit: 399,524 bytes in 63 blocks
==16904== total heap usage: 7,323 allocs, 7,260 frees, 952,513 bytes allocated
==16904==
==16904== 226 bytes in 1 blocks are definitely lost in loss record 43 of 63
==16904== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16904== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16904== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16904== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16904== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 408 bytes in 1 blocks are definitely lost in loss record 45 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 46 of 63
==16904== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16904== by 0x5328700: pcre_study (pcre_study.c:1572)
==16904== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16904== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16904== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 2,049 bytes in 1 blocks are definitely lost in loss record 48 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16904== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16904== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16904== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16904== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16904== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16904== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16904== by 0x414D43: modsecurity::Transaction::processLogging(int) (transaction.cc:1171)
==16904== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,248 bytes in 1 blocks are definitely lost in loss record 55 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x4476CA: allocate (new_allocator.h:104)
==16904== by 0x4476CA: allocate (alloc_traits.h:491)
==16904== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16904== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16904== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16904== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16904== by 0x446EFD: rehash (hashtable.h:1936)
==16904== by 0x446EFD: reserve (hashtable_policy.h:957)
==16904== by 0x446EFD: reserve (unordered_map.h:1505)
==16904== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16904== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16904== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16904== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 56 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16904== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 57 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16904== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 58 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16904== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 59 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16904== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 60 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16904== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16904== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16904== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16904== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 10,615 (64 direct, 10,551 indirect) bytes in 1 blocks are definitely lost in loss record 61 of 63
==16904== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16904== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16904== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16904== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== 262,144 bytes in 1 blocks are definitely lost in loss record 63 of 63
==16904== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16904== by 0x40BA0F: Rules (rules.h:63)
==16904== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16904== by 0x407CCC: main (regression.cc:387)
==16904==
==16904== LEAK SUMMARY:
==16904== definitely lost: 274,055 bytes in 12 blocks
==16904== indirectly lost: 52,117 bytes in 46 blocks
==16904== possibly lost: 0 bytes in 0 blocks
==16904== still reachable: 73,352 bytes in 5 blocks
==16904== suppressed: 0 bytes in 0 blocks
==16904== Reachable blocks (those to which a pointer was found) are not shown.
==16904== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16904==
==16904== For counts of detected and suppressed errors, rerun with: -v
==16904== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/misc.json
RUN: test/test-cases/regression/variable-REQUEST_HEADERS.json
=============================================================
==16929== Memcheck, a memory error detector
==16929== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16929== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16929== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_HEADERS.json
==16929==
:test-result: PASS variable-REQUEST_HEADERS.json:Testing Variables :: REQUEST_HEADERS
==16929==
==16929== HEAP SUMMARY:
==16929== in use at exit: 405,790 bytes in 122 blocks
==16929== total heap usage: 7,835 allocs, 7,713 frees, 994,380 bytes allocated
==16929==
==16929== 187 bytes in 1 blocks are definitely lost in loss record 83 of 107
==16929== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16929== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16929== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16929== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16929== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 408 bytes in 1 blocks are definitely lost in loss record 86 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 87 of 107
==16929== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16929== by 0x5328700: pcre_study (pcre_study.c:1572)
==16929== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16929== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16929== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 4,097 bytes in 1 blocks are definitely lost in loss record 92 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16929== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16929== by 0x5C1C8EC: std::ostream::put(char) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16929== by 0x413A48: endl<char, std::char_traits<char> > (ostream:591)
==16929== by 0x413A48: operator<< (ostream:113)
==16929== by 0x413A48: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16929== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16929== by 0x42F927: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:391)
==16929== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==16929== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==16929== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,248 bytes in 1 blocks are definitely lost in loss record 99 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x4476CA: allocate (new_allocator.h:104)
==16929== by 0x4476CA: allocate (alloc_traits.h:491)
==16929== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16929== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16929== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16929== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16929== by 0x446EFD: rehash (hashtable.h:1936)
==16929== by 0x446EFD: reserve (hashtable_policy.h:957)
==16929== by 0x446EFD: reserve (unordered_map.h:1505)
==16929== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16929== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16929== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16929== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 100 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16929== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 101 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16929== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 102 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16929== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 103 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16929== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16929== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16929== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16929== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16929== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 14,872 (64 direct, 14,808 indirect) bytes in 1 blocks are definitely lost in loss record 105 of 107
==16929== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16929== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16929== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16929== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== 262,144 bytes in 1 blocks are definitely lost in loss record 107 of 107
==16929== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16929== by 0x40BA0F: Rules (rules.h:63)
==16929== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16929== by 0x407CCC: main (regression.cc:387)
==16929==
==16929== LEAK SUMMARY:
==16929== definitely lost: 276,064 bytes in 12 blocks
==16929== indirectly lost: 56,374 bytes in 105 blocks
==16929== possibly lost: 0 bytes in 0 blocks
==16929== still reachable: 73,352 bytes in 5 blocks
==16929== suppressed: 0 bytes in 0 blocks
==16929== Reachable blocks (those to which a pointer was found) are not shown.
==16929== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16929==
==16929== For counts of detected and suppressed errors, rerun with: -v
==16929== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_HEADERS.json
RUN: test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json
=================================================================
==16891== Memcheck, a memory error detector
==16891== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16891== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16891== Command: ./regression_tests .././test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json
==16891==
:test-result: PASS variable-FULL_REQUEST_LENGTH.json:Testing Variables :: FULL_REQUEST_LENGTH (1/1)
==16891==
==16891== HEAP SUMMARY:
==16891== in use at exit: 405,775 bytes in 122 blocks
==16891== total heap usage: 7,748 allocs, 7,626 frees, 986,089 bytes allocated
==16891==
==16891== 173 bytes in 1 blocks are definitely lost in loss record 83 of 107
==16891== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16891== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16891== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16891== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16891== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 408 bytes in 1 blocks are definitely lost in loss record 86 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 87 of 107
==16891== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16891== by 0x5328700: pcre_study (pcre_study.c:1572)
==16891== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16891== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16891== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 4,097 bytes in 1 blocks are definitely lost in loss record 92 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16891== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16891== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16891== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16891== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16891== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16891== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16891== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16891== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,248 bytes in 1 blocks are definitely lost in loss record 99 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x4476CA: allocate (new_allocator.h:104)
==16891== by 0x4476CA: allocate (alloc_traits.h:491)
==16891== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16891== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16891== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16891== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16891== by 0x446EFD: rehash (hashtable.h:1936)
==16891== by 0x446EFD: reserve (hashtable_policy.h:957)
==16891== by 0x446EFD: reserve (unordered_map.h:1505)
==16891== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16891== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16891== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16891== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 100 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16891== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 101 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16891== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 102 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16891== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 103 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16891== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16891== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16891== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16891== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16891== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 14,871 (64 direct, 14,807 indirect) bytes in 1 blocks are definitely lost in loss record 105 of 107
==16891== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16891== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16891== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16891== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== 262,144 bytes in 1 blocks are definitely lost in loss record 107 of 107
==16891== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16891== by 0x40BA0F: Rules (rules.h:63)
==16891== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16891== by 0x407CCC: main (regression.cc:387)
==16891==
==16891== LEAK SUMMARY:
==16891== definitely lost: 276,050 bytes in 12 blocks
==16891== indirectly lost: 56,373 bytes in 105 blocks
==16891== possibly lost: 0 bytes in 0 blocks
==16891== still reachable: 73,352 bytes in 5 blocks
==16891== suppressed: 0 bytes in 0 blocks
==16891== Reachable blocks (those to which a pointer was found) are not shown.
==16891== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16891==
==16891== For counts of detected and suppressed errors, rerun with: -v
==16891== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json
RUN: test/test-cases/regression/variable-ARGS_NAMES.json
========================================================
==16921== Memcheck, a memory error detector
==16921== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16921== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16921== Command: ./regression_tests .././test/test-cases/regression/variable-ARGS_NAMES.json
==16921==
:test-result: PASS variable-ARGS_NAMES.json:Testing Variables :: ARGS_NAMES - GET (1/4)
:test-result: PASS variable-ARGS_NAMES.json:Testing Variables :: ARGS_NAMES - GET (2/4)
:test-result: PASS variable-ARGS_NAMES.json:Testing Variables :: ARGS_NAMES - POST (3/4)
:test-result: PASS variable-ARGS_NAMES.json:Testing Variables :: ARGS_NAMES - POST (4/4)
==16921==
==16921== HEAP SUMMARY:
==16921== in use at exit: 1,358,337 bytes in 356 blocks
==16921== total heap usage: 21,328 allocs, 20,972 frees, 2,529,591 bytes allocated
==16921==
==16921== 492 bytes in 4 blocks are definitely lost in loss record 68 of 91
==16921== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16921== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16921== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16921== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16921== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 1,632 bytes in 4 blocks are definitely lost in loss record 73 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 1,872 (432 direct, 1,440 indirect) bytes in 4 blocks are definitely lost in loss record 74 of 91
==16921== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16921== by 0x5328700: pcre_study (pcre_study.c:1572)
==16921== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16921== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16921== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 4,098 bytes in 2 blocks are definitely lost in loss record 75 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16921== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16921== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16921== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16921== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 4,098 bytes in 2 blocks are definitely lost in loss record 76 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16921== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16921== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16921== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16921== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==16921== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16921== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16921== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16921== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16921== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 32,992 bytes in 4 blocks are definitely lost in loss record 84 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x4476CA: allocate (new_allocator.h:104)
==16921== by 0x4476CA: allocate (alloc_traits.h:491)
==16921== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16921== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16921== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16921== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16921== by 0x446EFD: rehash (hashtable.h:1936)
==16921== by 0x446EFD: reserve (hashtable_policy.h:957)
==16921== by 0x446EFD: reserve (unordered_map.h:1505)
==16921== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16921== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16921== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16921== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 85 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16921== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 86 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16921== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 87 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16921== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 88 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16921== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 49,467 (256 direct, 49,211 indirect) bytes in 4 blocks are definitely lost in loss record 89 of 91
==16921== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16921== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16921== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16921== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== 1,048,576 bytes in 4 blocks are definitely lost in loss record 91 of 91
==16921== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16921== by 0x40BA0F: Rules (rules.h:63)
==16921== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16921== by 0x407CCC: main (regression.cc:387)
==16921==
==16921== LEAK SUMMARY:
==16921== definitely lost: 1,094,152 bytes in 45 blocks
==16921== indirectly lost: 190,833 bytes in 306 blocks
==16921== possibly lost: 0 bytes in 0 blocks
==16921== still reachable: 73,352 bytes in 5 blocks
==16921== suppressed: 0 bytes in 0 blocks
==16921== Reachable blocks (those to which a pointer was found) are not shown.
==16921== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16921==
==16921== For counts of detected and suppressed errors, rerun with: -v
==16921== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-ARGS_NAMES.json
RUN: test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json
===================================================================
==16988== Memcheck, a memory error detector
==16988== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16988== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16988== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json
==16988==
:test-result: PASS variable-REQUEST_COOKIES_NAMES.json:Testing Variables :: REQUEST_COOKIES_NAMES (1/3)
:test-result: PASS variable-REQUEST_COOKIES_NAMES.json:Testing Variables :: REQUEST_COOKIES_NAMES (2/3)
:test-result: PASS variable-REQUEST_COOKIES_NAMES.json:Testing Variables :: REQUEST_COOKIES_NAMES (3/3)
==16988==
==16988== HEAP SUMMARY:
==16988== in use at exit: 1,041,235 bytes in 305 blocks
==16988== total heap usage: 16,959 allocs, 16,654 frees, 2,018,168 bytes allocated
==16988==
==16988== 567 bytes in 3 blocks are definitely lost in loss record 63 of 86
==16988== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16988== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16988== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16988== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16988== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 1,224 bytes in 3 blocks are definitely lost in loss record 69 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 1,404 (324 direct, 1,080 indirect) bytes in 3 blocks are definitely lost in loss record 70 of 86
==16988== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16988== by 0x5328700: pcre_study (pcre_study.c:1572)
==16988== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16988== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16988== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 6,147 bytes in 3 blocks are definitely lost in loss record 71 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16988== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16988== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16988== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16988== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16988== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16988== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==16988== by 0x41F10F: modsecurity::Transaction::appendRequestBody(unsigned char const*, unsigned long) (transaction.cc:773)
==16988== by 0x40D3C7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:250)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 73 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16988== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16988== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16988== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16988== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 24,744 bytes in 3 blocks are definitely lost in loss record 79 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x4476CA: allocate (new_allocator.h:104)
==16988== by 0x4476CA: allocate (alloc_traits.h:491)
==16988== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16988== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16988== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16988== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16988== by 0x446EFD: rehash (hashtable.h:1936)
==16988== by 0x446EFD: reserve (hashtable_policy.h:957)
==16988== by 0x446EFD: reserve (unordered_map.h:1505)
==16988== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16988== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16988== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16988== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 80 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16988== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 81 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16988== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 82 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16988== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 83 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16988== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 38,855 (192 direct, 38,663 indirect) bytes in 3 blocks are definitely lost in loss record 84 of 86
==16988== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16988== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16988== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16988== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== 786,432 bytes in 3 blocks are definitely lost in loss record 86 of 86
==16988== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16988== by 0x40BA0F: Rules (rules.h:63)
==16988== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16988== by 0x407CCC: main (regression.cc:387)
==16988==
==16988== LEAK SUMMARY:
==16988== definitely lost: 820,950 bytes in 34 blocks
==16988== indirectly lost: 146,933 bytes in 266 blocks
==16988== possibly lost: 0 bytes in 0 blocks
==16988== still reachable: 73,352 bytes in 5 blocks
==16988== suppressed: 0 bytes in 0 blocks
==16988== Reachable blocks (those to which a pointer was found) are not shown.
==16988== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16988==
==16988== For counts of detected and suppressed errors, rerun with: -v
==16988== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json
RUN: test/test-cases/regression/variable-ARGS_GET_NAMES.json
============================================================
==16989== Memcheck, a memory error detector
==16989== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==16989== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==16989== Command: ./regression_tests .././test/test-cases/regression/variable-ARGS_GET_NAMES.json
==16989==
:test-result: PASS variable-ARGS_GET_NAMES.json:Testing Variables :: ARGS_GET_NAMES (1/2)
:test-result: PASS variable-ARGS_GET_NAMES.json:Testing Variables :: ARGS_GET_NAMES (2/2)
==16989==
==16989== HEAP SUMMARY:
==16989== in use at exit: 719,788 bytes in 176 blocks
==16989== total heap usage: 12,087 allocs, 11,911 frees, 1,477,828 bytes allocated
==16989==
==16989== 234 bytes in 2 blocks are definitely lost in loss record 57 of 81
==16989== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16989== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==16989== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==16989== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16989== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 816 bytes in 2 blocks are definitely lost in loss record 64 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 65 of 81
==16989== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16989== by 0x5328700: pcre_study (pcre_study.c:1572)
==16989== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==16989== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==16989== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 4,098 bytes in 2 blocks are definitely lost in loss record 66 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16989== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16989== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16989== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==16989== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==16989== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==16989== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==16989== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==16989== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 68 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==16989== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==16989== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==16989== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==16989== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 16,496 bytes in 2 blocks are definitely lost in loss record 74 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x4476CA: allocate (new_allocator.h:104)
==16989== by 0x4476CA: allocate (alloc_traits.h:491)
==16989== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==16989== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==16989== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==16989== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==16989== by 0x446EFD: rehash (hashtable.h:1936)
==16989== by 0x446EFD: reserve (hashtable_policy.h:957)
==16989== by 0x446EFD: reserve (unordered_map.h:1505)
==16989== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==16989== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==16989== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16989== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 75 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16989== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 76 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16989== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 77 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16989== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 78 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==16989== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 24,306 (128 direct, 24,178 indirect) bytes in 2 blocks are definitely lost in loss record 79 of 81
==16989== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==16989== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==16989== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==16989== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== 524,288 bytes in 2 blocks are definitely lost in loss record 81 of 81
==16989== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==16989== by 0x40BA0F: Rules (rules.h:63)
==16989== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==16989== by 0x407CCC: main (regression.cc:387)
==16989==
==16989== LEAK SUMMARY:
==16989== definitely lost: 547,340 bytes in 23 blocks
==16989== indirectly lost: 99,096 bytes in 148 blocks
==16989== possibly lost: 0 bytes in 0 blocks
==16989== still reachable: 73,352 bytes in 5 blocks
==16989== suppressed: 0 bytes in 0 blocks
==16989== Reachable blocks (those to which a pointer was found) are not shown.
==16989== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==16989==
==16989== For counts of detected and suppressed errors, rerun with: -v
==16989== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-ARGS_GET_NAMES.json
RUN: test/test-cases/regression/variable-REMOTE_USER.json
=========================================================
==17066== Memcheck, a memory error detector
==17066== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17066== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17066== Command: ./regression_tests .././test/test-cases/regression/variable-REMOTE_USER.json
==17066==
:test-result: PASS variable-REMOTE_USER.json:Testing Variables :: REMOTE_USER
==17066==
==17066== HEAP SUMMARY:
==17066== in use at exit: 401,684 bytes in 101 blocks
==17066== total heap usage: 7,602 allocs, 7,501 frees, 966,245 bytes allocated
==17066==
==17066== 105 bytes in 1 blocks are definitely lost in loss record 57 of 83
==17066== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17066== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17066== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17066== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17066== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 408 bytes in 1 blocks are definitely lost in loss record 64 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 83
==17066== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17066== by 0x5328700: pcre_study (pcre_study.c:1572)
==17066== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17066== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17066== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 2,049 bytes in 1 blocks are definitely lost in loss record 68 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17066== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17066== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17066== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17066== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17066== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17066== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17066== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17066== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,248 bytes in 1 blocks are definitely lost in loss record 75 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x4476CA: allocate (new_allocator.h:104)
==17066== by 0x4476CA: allocate (alloc_traits.h:491)
==17066== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17066== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17066== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17066== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17066== by 0x446EFD: rehash (hashtable.h:1936)
==17066== by 0x446EFD: reserve (hashtable_policy.h:957)
==17066== by 0x446EFD: reserve (unordered_map.h:1505)
==17066== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17066== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17066== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17066== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17066== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17066== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17066== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17066== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17066== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17066== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17066== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17066== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 12,896 (64 direct, 12,832 indirect) bytes in 1 blocks are definitely lost in loss record 81 of 83
==17066== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17066== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17066== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17066== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== 262,144 bytes in 1 blocks are definitely lost in loss record 83 of 83
==17066== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17066== by 0x40BA0F: Rules (rules.h:63)
==17066== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17066== by 0x407CCC: main (regression.cc:387)
==17066==
==17066== LEAK SUMMARY:
==17066== definitely lost: 273,934 bytes in 12 blocks
==17066== indirectly lost: 54,398 bytes in 84 blocks
==17066== possibly lost: 0 bytes in 0 blocks
==17066== still reachable: 73,352 bytes in 5 blocks
==17066== suppressed: 0 bytes in 0 blocks
==17066== Reachable blocks (those to which a pointer was found) are not shown.
==17066== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17066==
==17066== For counts of detected and suppressed errors, rerun with: -v
==17066== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REMOTE_USER.json
RUN: test/test-cases/regression/action-msg.json
===============================================
==17083== Memcheck, a memory error detector
==17083== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17083== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17083== Command: ./regression_tests .././test/test-cases/regression/action-msg.json
==17083==
:test-result: PASS action-msg.json:Testing action :: msg (this test is not really testing it)
:test-result: PASS action-msg.json:Testing action :: msg - variable expansion
==17083==
==17083== HEAP SUMMARY:
==17083== in use at exit: 729,228 bytes in 241 blocks
==17083== total heap usage: 12,970 allocs, 12,729 frees, 1,577,616 bytes allocated
==17083==
==17083== 80 bytes in 1 blocks are definitely lost in loss record 30 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x447899: allocate (new_allocator.h:104)
==17083== by 0x447899: allocate (alloc_traits.h:491)
==17083== by 0x447899: std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> > >::_M_allocate_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (hashtable_policy.h:1949)
==17083== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:1565)
==17083== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:671)
==17083== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:726)
==17083== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (unordered_map.h:1128)
==17083== by 0x446F2C: modsecurity::collection::backend::InMemoryPerProcess::store(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in_memory-per_process.cc:43)
==17083== by 0x445C0A: modsecurity::collection::backend::InMemoryPerProcess::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in_memory-per_process.cc:50)
==17083== by 0x44412A: modsecurity::collection::Collections::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (collections.cc:85)
==17083== by 0x4412F8: modsecurity::actions::Capture::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (capture.cc:43)
==17083== by 0x43040E: evaluate (action.h:114)
==17083== by 0x43040E: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==17083== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17083== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17083== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 322 bytes in 2 blocks are definitely lost in loss record 74 of 101
==17083== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17083== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17083== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17083== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17083== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 816 bytes in 2 blocks are definitely lost in loss record 81 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 83 of 101
==17083== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17083== by 0x5328700: pcre_study (pcre_study.c:1572)
==17083== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17083== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17083== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 8,194 bytes in 2 blocks are definitely lost in loss record 86 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17083== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17083== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17083== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17083== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17083== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17083== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17083== by 0x430632: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:503)
==17083== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17083== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17083== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 8,248 bytes in 1 blocks are possibly lost in loss record 87 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x4476CA: allocate (new_allocator.h:104)
==17083== by 0x4476CA: allocate (alloc_traits.h:491)
==17083== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17083== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17083== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17083== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17083== by 0x446EFD: rehash (hashtable.h:1936)
==17083== by 0x446EFD: reserve (hashtable_policy.h:957)
==17083== by 0x446EFD: reserve (unordered_map.h:1505)
==17083== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17083== by 0x425192: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17083== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 8,376 (128 direct, 8,248 indirect) bytes in 2 blocks are definitely lost in loss record 89 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17083== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 90 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17083== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17083== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17083== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17083== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 16,496 bytes in 2 blocks are definitely lost in loss record 95 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x4476CA: allocate (new_allocator.h:104)
==17083== by 0x4476CA: allocate (alloc_traits.h:491)
==17083== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17083== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17083== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17083== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17083== by 0x446EFD: rehash (hashtable.h:1936)
==17083== by 0x446EFD: reserve (hashtable_policy.h:957)
==17083== by 0x446EFD: reserve (unordered_map.h:1505)
==17083== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17083== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17083== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17083== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 96 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17083== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 97 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17083== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 98 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17083== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 29,482 (128 direct, 29,354 indirect) bytes in 2 blocks are definitely lost in loss record 99 of 101
==17083== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17083== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17083== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17083== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== 524,288 bytes in 2 blocks are definitely lost in loss record 101 of 101
==17083== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17083== by 0x40BA0F: Rules (rules.h:63)
==17083== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17083== by 0x407CCC: main (regression.cc:387)
==17083==
==17083== LEAK SUMMARY:
==17083== definitely lost: 551,604 bytes in 24 blocks
==17083== indirectly lost: 96,024 bytes in 211 blocks
==17083== possibly lost: 8,248 bytes in 1 blocks
==17083== still reachable: 73,352 bytes in 5 blocks
==17083== suppressed: 0 bytes in 0 blocks
==17083== Reachable blocks (those to which a pointer was found) are not shown.
==17083== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17083==
==17083== For counts of detected and suppressed errors, rerun with: -v
==17083== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-msg.json
RUN: test/test-cases/regression/variable-UNIQUE_ID.json
=======================================================
==17090== Memcheck, a memory error detector
==17090== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17090== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17090== Command: ./regression_tests .././test/test-cases/regression/variable-UNIQUE_ID.json
==17090==
:test-result: PASS variable-UNIQUE_ID.json:Testing Variables :: UNIQUE_ID
==17090==
==17090== HEAP SUMMARY:
==17090== in use at exit: 401,473 bytes in 97 blocks
==17090== total heap usage: 7,574 allocs, 7,477 frees, 964,495 bytes allocated
==17090==
==17090== 189 bytes in 1 blocks are definitely lost in loss record 60 of 82
==17090== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17090== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17090== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17090== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17090== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==17090== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17090== by 0x5328700: pcre_study (pcre_study.c:1572)
==17090== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17090== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17090== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17090== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17090== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17090== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17090== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17090== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17090== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17090== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17090== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x4476CA: allocate (new_allocator.h:104)
==17090== by 0x4476CA: allocate (alloc_traits.h:491)
==17090== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17090== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17090== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17090== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17090== by 0x446EFD: rehash (hashtable.h:1936)
==17090== by 0x446EFD: reserve (hashtable_policy.h:957)
==17090== by 0x446EFD: reserve (unordered_map.h:1505)
==17090== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17090== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17090== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17090== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17090== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17090== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17090== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17090== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17090== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17090== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17090== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17090== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==17090== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17090== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17090== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17090== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==17090== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17090== by 0x40BA0F: Rules (rules.h:63)
==17090== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17090== by 0x407CCC: main (regression.cc:387)
==17090==
==17090== LEAK SUMMARY:
==17090== definitely lost: 274,018 bytes in 12 blocks
==17090== indirectly lost: 54,103 bytes in 80 blocks
==17090== possibly lost: 0 bytes in 0 blocks
==17090== still reachable: 73,352 bytes in 5 blocks
==17090== suppressed: 0 bytes in 0 blocks
==17090== Reachable blocks (those to which a pointer was found) are not shown.
==17090== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17090==
==17090== For counts of detected and suppressed errors, rerun with: -v
==17090== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-UNIQUE_ID.json
RUN: test/test-cases/regression/variable-REQUEST_URI.json
=========================================================
==17181== Memcheck, a memory error detector
==17181== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17181== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17181== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_URI.json
==17181==
:test-result: PASS variable-REQUEST_URI.json:Testing Variables :: REQUEST_URI
==17181==
==17181== HEAP SUMMARY:
==17181== in use at exit: 401,044 bytes in 92 blocks
==17181== total heap usage: 7,532 allocs, 7,440 frees, 962,229 bytes allocated
==17181==
==17181== 205 bytes in 1 blocks are definitely lost in loss record 59 of 81
==17181== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17181== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17181== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17181== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17181== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 408 bytes in 1 blocks are definitely lost in loss record 63 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 64 of 81
==17181== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17181== by 0x5328700: pcre_study (pcre_study.c:1572)
==17181== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17181== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17181== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 2,049 bytes in 1 blocks are definitely lost in loss record 66 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17181== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17181== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17181== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17181== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17181== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17181== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17181== by 0x41F93C: modsecurity::Transaction::processResponseBody() (transaction.cc:949)
==17181== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,248 bytes in 1 blocks are definitely lost in loss record 73 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x4476CA: allocate (new_allocator.h:104)
==17181== by 0x4476CA: allocate (alloc_traits.h:491)
==17181== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17181== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17181== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17181== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17181== by 0x446EFD: rehash (hashtable.h:1936)
==17181== by 0x446EFD: reserve (hashtable_policy.h:957)
==17181== by 0x446EFD: reserve (unordered_map.h:1505)
==17181== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17181== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17181== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17181== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17181== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17181== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17181== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17181== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17181== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17181== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17181== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17181== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 12,156 (64 direct, 12,092 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 81
==17181== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17181== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17181== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17181== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== 262,144 bytes in 1 blocks are definitely lost in loss record 81 of 81
==17181== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17181== by 0x40BA0F: Rules (rules.h:63)
==17181== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17181== by 0x407CCC: main (regression.cc:387)
==17181==
==17181== LEAK SUMMARY:
==17181== definitely lost: 274,034 bytes in 12 blocks
==17181== indirectly lost: 53,658 bytes in 75 blocks
==17181== possibly lost: 0 bytes in 0 blocks
==17181== still reachable: 73,352 bytes in 5 blocks
==17181== suppressed: 0 bytes in 0 blocks
==17181== Reachable blocks (those to which a pointer was found) are not shown.
==17181== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17181==
==17181== For counts of detected and suppressed errors, rerun with: -v
==17181== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_URI.json
RUN: test/test-cases/regression/request-body-parser-xml.json
============================================================
==17188== Memcheck, a memory error detector
==17188== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17188== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17188== Command: ./regression_tests .././test/test-cases/regression/request-body-parser-xml.json
==17188==
:test-result: PASS request-body-parser-xml.json:Testing XML request body parser (bad XML)
:test-result: PASS request-body-parser-xml.json:Testing XML request body parser (bad schema)
:test-result: PASS request-body-parser-xml.json:Testing XML request body parser (validate attribute value failed)
:test-result: PASS request-body-parser-xml.json:Testing XML request body parser (validate failed)
:test-result: PASS request-body-parser-xml.json:Testing XML request body parser (validate ok)
==17188==
==17188== HEAP SUMMARY:
==17188== in use at exit: 1,749,617 bytes in 1,155 blocks
==17188== total heap usage: 30,924 allocs, 29,769 frees, 4,013,298 bytes allocated
==17188==
==17188== 1,087 bytes in 5 blocks are definitely lost in loss record 397 of 433
==17188== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17188== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17188== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17188== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17188== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 2,040 bytes in 5 blocks are definitely lost in loss record 409 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 2,340 (540 direct, 1,800 indirect) bytes in 5 blocks are definitely lost in loss record 410 of 433
==17188== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17188== by 0x5328700: pcre_study (pcre_study.c:1572)
==17188== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17188== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17188== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 3,625 (840 direct, 2,785 indirect) bytes in 5 blocks are definitely lost in loss record 415 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17188== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17188== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17188== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17188== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17188== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 10,245 bytes in 5 blocks are definitely lost in loss record 420 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17188== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17188== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17188== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17188== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17188== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17188== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17188== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17188== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 41,240 bytes in 5 blocks are definitely lost in loss record 426 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x4476CA: allocate (new_allocator.h:104)
==17188== by 0x4476CA: allocate (alloc_traits.h:491)
==17188== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17188== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17188== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17188== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17188== by 0x446EFD: rehash (hashtable.h:1936)
==17188== by 0x446EFD: reserve (hashtable_policy.h:957)
==17188== by 0x446EFD: reserve (unordered_map.h:1505)
==17188== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17188== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17188== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17188== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 427 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17188== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 428 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17188== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 429 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17188== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 430 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17188== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 71,626 (320 direct, 71,306 indirect) bytes in 5 blocks are definitely lost in loss record 431 of 433
==17188== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17188== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17188== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17188== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== 1,310,720 bytes in 5 blocks are definitely lost in loss record 433 of 433
==17188== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17188== by 0x40BA0F: Rules (rules.h:63)
==17188== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17188== by 0x407CCC: main (regression.cc:387)
==17188==
==17188== LEAK SUMMARY:
==17188== definitely lost: 1,368,312 bytes in 60 blocks
==17188== indirectly lost: 240,851 bytes in 454 blocks
==17188== possibly lost: 0 bytes in 0 blocks
==17188== still reachable: 140,454 bytes in 641 blocks
==17188== suppressed: 0 bytes in 0 blocks
==17188== Reachable blocks (those to which a pointer was found) are not shown.
==17188== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17188==
==17188== For counts of detected and suppressed errors, rerun with: -v
==17188== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/request-body-parser-xml.json
RUN: test/test-cases/regression/secaction.json
==============================================
==17226== Memcheck, a memory error detector
==17226== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17226== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17226== Command: ./regression_tests .././test/test-cases/regression/secaction.json
==17226==
:test-result: PASS secaction.json:sec action
==17226==
==17226== HEAP SUMMARY:
==17226== in use at exit: 403,756 bytes in 127 blocks
==17226== total heap usage: 7,811 allocs, 7,684 frees, 991,979 bytes allocated
==17226==
==17226== 124 bytes in 1 blocks are definitely lost in loss record 64 of 95
==17226== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17226== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17226== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17226== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17226== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 408 bytes in 1 blocks are definitely lost in loss record 75 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 95
==17226== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17226== by 0x5328700: pcre_study (pcre_study.c:1572)
==17226== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17226== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17226== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 2,049 bytes in 1 blocks are definitely lost in loss record 80 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17226== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17226== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17226== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17226== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17226== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17226== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17226== by 0x42DC7A: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:255)
==17226== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17226== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17226== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17226== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17226==
==17226== 8,248 bytes in 1 blocks are definitely lost in loss record 87 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x4476CA: allocate (new_allocator.h:104)
==17226== by 0x4476CA: allocate (alloc_traits.h:491)
==17226== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17226== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17226== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17226== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17226== by 0x446EFD: rehash (hashtable.h:1936)
==17226== by 0x446EFD: reserve (hashtable_policy.h:957)
==17226== by 0x446EFD: reserve (unordered_map.h:1505)
==17226== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17226== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17226== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17226== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 88 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17226== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17226== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 90 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17226== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 91 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17226== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 92 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17226== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17226== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17226== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17226== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 14,949 (64 direct, 14,885 indirect) bytes in 1 blocks are definitely lost in loss record 93 of 95
==17226== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17226== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17226== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17226== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== 262,144 bytes in 1 blocks are definitely lost in loss record 95 of 95
==17226== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17226== by 0x40BA0F: Rules (rules.h:63)
==17226== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17226== by 0x407CCC: main (regression.cc:387)
==17226==
==17226== LEAK SUMMARY:
==17226== definitely lost: 273,953 bytes in 12 blocks
==17226== indirectly lost: 56,451 bytes in 110 blocks
==17226== possibly lost: 0 bytes in 0 blocks
==17226== still reachable: 73,352 bytes in 5 blocks
==17226== suppressed: 0 bytes in 0 blocks
==17226== Reachable blocks (those to which a pointer was found) are not shown.
==17226== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17226==
==17226== For counts of detected and suppressed errors, rerun with: -v
==17226== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/secaction.json
RUN: test/test-cases/regression/variable-TIME_WDAY.json
=======================================================
==17227== Memcheck, a memory error detector
==17227== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17227== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17227== Command: ./regression_tests .././test/test-cases/regression/variable-TIME_WDAY.json
==17227==
:test-result: PASS variable-TIME_WDAY.json:Testing Variables :: TIME_WDAY
==17227==
==17227== HEAP SUMMARY:
==17227== in use at exit: 401,473 bytes in 97 blocks
==17227== total heap usage: 7,574 allocs, 7,477 frees, 969,642 bytes allocated
==17227==
==17227== 189 bytes in 1 blocks are definitely lost in loss record 60 of 82
==17227== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17227== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17227== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17227== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17227== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==17227== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17227== by 0x5328700: pcre_study (pcre_study.c:1572)
==17227== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17227== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17227== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17227== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17227== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17227== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17227== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17227== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17227== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17227== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==17227== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x4476CA: allocate (new_allocator.h:104)
==17227== by 0x4476CA: allocate (alloc_traits.h:491)
==17227== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17227== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17227== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17227== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17227== by 0x446EFD: rehash (hashtable.h:1936)
==17227== by 0x446EFD: reserve (hashtable_policy.h:957)
==17227== by 0x446EFD: reserve (unordered_map.h:1505)
==17227== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17227== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17227== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17227== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17227== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17227== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17227== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17227== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17227== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17227== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17227== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17227== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==17227== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17227== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17227== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17227== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==17227== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17227== by 0x40BA0F: Rules (rules.h:63)
==17227== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17227== by 0x407CCC: main (regression.cc:387)
==17227==
==17227== LEAK SUMMARY:
==17227== definitely lost: 274,018 bytes in 12 blocks
==17227== indirectly lost: 54,103 bytes in 80 blocks
==17227== possibly lost: 0 bytes in 0 blocks
==17227== still reachable: 73,352 bytes in 5 blocks
==17227== suppressed: 0 bytes in 0 blocks
==17227== Reachable blocks (those to which a pointer was found) are not shown.
==17227== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17227==
==17227== For counts of detected and suppressed errors, rerun with: -v
==17227== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-TIME_WDAY.json
RUN: test/test-cases/regression/issue-960.json
==============================================
==17228== Memcheck, a memory error detector
==17228== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17228== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17228== Command: ./regression_tests .././test/test-cases/regression/issue-960.json
==17228==
:test-result: PASS issue-960.json:!@within appears to fail (1/3)
:test-result: PASS issue-960.json:!@within appears to fail (2/3)
:test-result: PASS issue-960.json:!@within appears to fail (3/3)
==17228==
==17228== HEAP SUMMARY:
==17228== in use at exit: 1,034,951 bytes in 267 blocks
==17228== total heap usage: 17,370 allocs, 17,103 frees, 2,061,584 bytes allocated
==17228==
==17228== 121 (80 direct, 41 indirect) bytes in 1 blocks are definitely lost in loss record 27 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x447899: allocate (new_allocator.h:104)
==17228== by 0x447899: allocate (alloc_traits.h:491)
==17228== by 0x447899: std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> > >::_M_allocate_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) (hashtable_policy.h:1949)
==17228== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:1565)
==17228== by 0x446F2C: _M_emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:671)
==17228== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (hashtable.h:726)
==17228== by 0x446F2C: emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> (unordered_map.h:1128)
==17228== by 0x446F2C: modsecurity::collection::backend::InMemoryPerProcess::store(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (in_memory-per_process.cc:43)
==17228== by 0x445C0A: modsecurity::collection::backend::InMemoryPerProcess::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in_memory-per_process.cc:50)
==17228== by 0x44412A: modsecurity::collection::Collections::storeOrUpdateFirst(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (collections.cc:85)
==17228== by 0x48B14A: modsecurity::actions::SetVar::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (set_var.cc:141)
==17228== by 0x42D868: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:206)
==17228== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17228== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17228== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17228== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 408 bytes in 3 blocks are definitely lost in loss record 66 of 91
==17228== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17228== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17228== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17228== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17228== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 528 bytes in 6 blocks are definitely lost in loss record 69 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x440604: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:92)
==17228== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17228== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17228== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17228== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 528 bytes in 6 blocks are definitely lost in loss record 70 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x440392: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:90)
==17228== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17228== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17228== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17228== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 576 bytes in 6 blocks are definitely lost in loss record 71 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x43EDA8: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:66)
==17228== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17228== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17228== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17228== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 720 (528 direct, 192 indirect) bytes in 6 blocks are definitely lost in loss record 72 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x470D88: yy::seclang_parser::parse() (seclang-parser.yy:1114)
==17228== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17228== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17228== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 1,224 bytes in 3 blocks are definitely lost in loss record 74 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 1,404 (324 direct, 1,080 indirect) bytes in 3 blocks are definitely lost in loss record 75 of 91
==17228== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17228== by 0x5328700: pcre_study (pcre_study.c:1572)
==17228== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17228== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17228== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 2,049 bytes in 1 blocks are definitely lost in loss record 76 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17228== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17228== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17228== by 0x42DA7F: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:261)
==17228== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17228== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17228== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17228== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17228==
==17228== 4,097 bytes in 1 blocks are definitely lost in loss record 77 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x413A0F: operator<< <std::char_traits<char> > (ostream:561)
==17228== by 0x413A0F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17228== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17228== by 0x48B840: modsecurity::actions::Tag::evaluate(modsecurity::Rule*, modsecurity::Transaction*, modsecurity::RuleMessage*) (tag.cc:57)
==17228== by 0x4311BF: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==17228== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17228== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17228== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17228==
==17228== 4,097 bytes in 1 blocks are definitely lost in loss record 78 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17228== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17228== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17228== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17228== by 0x48B840: modsecurity::actions::Tag::evaluate(modsecurity::Rule*, modsecurity::Transaction*, modsecurity::RuleMessage*) (tag.cc:57)
==17228== by 0x4311BF: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==17228== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17228== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17228== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17228==
==17228== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 84 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17228== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 85 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17228== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 86 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17228== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 24,936 (192 direct, 24,744 indirect) bytes in 3 blocks are definitely lost in loss record 87 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17228== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 25,142 (24,744 direct, 398 indirect) bytes in 3 blocks are definitely lost in loss record 88 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x4476CA: allocate (new_allocator.h:104)
==17228== by 0x4476CA: allocate (alloc_traits.h:491)
==17228== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17228== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17228== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17228== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17228== by 0x446EFD: rehash (hashtable.h:1936)
==17228== by 0x446EFD: reserve (hashtable_policy.h:957)
==17228== by 0x446EFD: reserve (unordered_map.h:1505)
==17228== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17228== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17228== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17228== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 35,081 (192 direct, 34,889 indirect) bytes in 3 blocks are definitely lost in loss record 89 of 91
==17228== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17228== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17228== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17228== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== 786,432 bytes in 3 blocks are definitely lost in loss record 91 of 91
==17228== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17228== by 0x40BA0F: Rules (rules.h:63)
==17228== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17228== by 0x407CCC: main (regression.cc:387)
==17228==
==17228== LEAK SUMMARY:
==17228== definitely lost: 826,575 bytes in 58 blocks
==17228== indirectly lost: 135,576 bytes in 205 blocks
==17228== possibly lost: 0 bytes in 0 blocks
==17228== still reachable: 72,800 bytes in 4 blocks
==17228== suppressed: 0 bytes in 0 blocks
==17228== Reachable blocks (those to which a pointer was found) are not shown.
==17228== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17228==
==17228== For counts of detected and suppressed errors, rerun with: -v
==17228== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/issue-960.json
RUN: test/test-cases/regression/request-body-parser-xml-validade-dtd.json
=========================================================================
==17274== Memcheck, a memory error detector
==17274== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17274== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17274== Command: ./regression_tests .././test/test-cases/regression/request-body-parser-xml-validade-dtd.json
==17274==
:test-result: PASS request-body-parser-xml-validade-dtd.json:Testing XML request body parser - validateDTD (bad DTD)
:test-result: PASS request-body-parser-xml-validade-dtd.json:Testing XML request body parser - validateDTD (bad XML)
:test-result: PASS request-body-parser-xml-validade-dtd.json:Testing XML request body parser - validateDTD (validate ok)
:test-result: PASS request-body-parser-xml-validade-dtd.json:Testing XML request body parser - validateDTD (validation failed)
==17274==
==17274== HEAP SUMMARY:
==17274== in use at exit: 1,357,620 bytes in 438 blocks
==17274== total heap usage: 22,668 allocs, 22,230 frees, 3,021,407 bytes allocated
==17274==
==17274== 764 bytes in 4 blocks are definitely lost in loss record 103 of 127
==17274== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17274== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17274== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17274== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17274== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 1,632 bytes in 4 blocks are definitely lost in loss record 109 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 1,872 (432 direct, 1,440 indirect) bytes in 4 blocks are definitely lost in loss record 110 of 127
==17274== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17274== by 0x5328700: pcre_study (pcre_study.c:1572)
==17274== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17274== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17274== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 2,049 bytes in 1 blocks are definitely lost in loss record 111 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17274== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17274== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17274== by 0x43E9C3: debug (xml.h:56)
==17274== by 0x43E9C3: modsecurity::RequestBodyProcessor::XML::complete() (xml.cc:124)
==17274== by 0x41CBBB: modsecurity::Transaction::processRequestBody() (transaction.cc:597)
==17274== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 2,900 (672 direct, 2,228 indirect) bytes in 4 blocks are definitely lost in loss record 112 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17274== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17274== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17274== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17274== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17274== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 6,147 bytes in 3 blocks are definitely lost in loss record 113 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17274== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17274== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17274== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17274== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17274== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 8,248 bytes in 1 blocks are possibly lost in loss record 114 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x4476CA: allocate (new_allocator.h:104)
==17274== by 0x4476CA: allocate (alloc_traits.h:491)
==17274== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17274== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17274== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17274== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17274== by 0x446EFD: rehash (hashtable.h:1936)
==17274== by 0x446EFD: reserve (hashtable_policy.h:957)
==17274== by 0x446EFD: reserve (unordered_map.h:1505)
==17274== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17274== by 0x425161: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17274== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 25,000 (256 direct, 24,744 indirect) bytes in 4 blocks are definitely lost in loss record 116 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17274== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 32,992 bytes in 4 blocks are definitely lost in loss record 121 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x4476CA: allocate (new_allocator.h:104)
==17274== by 0x4476CA: allocate (alloc_traits.h:491)
==17274== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17274== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17274== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17274== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17274== by 0x446EFD: rehash (hashtable.h:1936)
==17274== by 0x446EFD: reserve (hashtable_policy.h:957)
==17274== by 0x446EFD: reserve (unordered_map.h:1505)
==17274== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17274== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17274== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17274== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 122 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17274== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 123 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17274== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 33,248 (256 direct, 32,992 indirect) bytes in 4 blocks are definitely lost in loss record 124 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17274== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 53,633 (256 direct, 53,377 indirect) bytes in 4 blocks are definitely lost in loss record 125 of 127
==17274== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17274== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17274== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17274== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== 1,048,576 bytes in 4 blocks are definitely lost in loss record 127 of 127
==17274== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17274== by 0x40BA0F: Rules (rules.h:63)
==17274== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17274== by 0x407CCC: main (regression.cc:387)
==17274==
==17274== LEAK SUMMARY:
==17274== definitely lost: 1,094,544 bytes in 48 blocks
==17274== indirectly lost: 180,765 bytes in 362 blocks
==17274== possibly lost: 8,248 bytes in 1 blocks
==17274== still reachable: 74,063 bytes in 27 blocks
==17274== suppressed: 0 bytes in 0 blocks
==17274== Reachable blocks (those to which a pointer was found) are not shown.
==17274== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17274==
==17274== For counts of detected and suppressed errors, rerun with: -v
==17274== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/request-body-parser-xml-validade-dtd.json
RUN: test/test-cases/regression/variable-TIME_MIN.json
======================================================
==17283== Memcheck, a memory error detector
==17283== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17283== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17283== Command: ./regression_tests .././test/test-cases/regression/variable-TIME_MIN.json
==17283==
:test-result: PASS variable-TIME_MIN.json:Testing Variables :: TIME_MIN
==17283==
==17283== HEAP SUMMARY:
==17283== in use at exit: 401,471 bytes in 97 blocks
==17283== total heap usage: 7,575 allocs, 7,478 frees, 969,296 bytes allocated
==17283==
==17283== 187 bytes in 1 blocks are definitely lost in loss record 60 of 82
==17283== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17283== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17283== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17283== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17283== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==17283== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17283== by 0x5328700: pcre_study (pcre_study.c:1572)
==17283== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17283== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17283== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17283== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17283== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17283== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17283== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17283== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17283== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17283== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==17283== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x4476CA: allocate (new_allocator.h:104)
==17283== by 0x4476CA: allocate (alloc_traits.h:491)
==17283== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17283== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17283== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17283== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17283== by 0x446EFD: rehash (hashtable.h:1936)
==17283== by 0x446EFD: reserve (hashtable_policy.h:957)
==17283== by 0x446EFD: reserve (unordered_map.h:1505)
==17283== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17283== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17283== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17283== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17283== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17283== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17283== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17283== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17283== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17283== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17283== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17283== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==17283== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17283== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17283== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17283== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==17283== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17283== by 0x40BA0F: Rules (rules.h:63)
==17283== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17283== by 0x407CCC: main (regression.cc:387)
==17283==
==17283== LEAK SUMMARY:
==17283== definitely lost: 274,016 bytes in 12 blocks
==17283== indirectly lost: 54,103 bytes in 80 blocks
==17283== possibly lost: 0 bytes in 0 blocks
==17283== still reachable: 73,352 bytes in 5 blocks
==17283== suppressed: 0 bytes in 0 blocks
==17283== Reachable blocks (those to which a pointer was found) are not shown.
==17283== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17283==
==17283== For counts of detected and suppressed errors, rerun with: -v
==17283== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-TIME_MIN.json
RUN: test/test-cases/regression/action-setuid.json
==================================================
==17286== Memcheck, a memory error detector
==17286== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17286== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17286== Command: ./regression_tests .././test/test-cases/regression/action-setuid.json
==17286==
:test-result: PASS action-setuid.json:Testing setuid action
==17286==
==17286== HEAP SUMMARY:
==17286== in use at exit: 412,352 bytes in 168 blocks
==17286== total heap usage: 8,084 allocs, 7,916 frees, 1,053,702 bytes allocated
==17286==
==17286== 153 bytes in 1 blocks are definitely lost in loss record 67 of 100
==17286== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17286== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17286== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17286== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17286== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 408 bytes in 1 blocks are definitely lost in loss record 77 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 100
==17286== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17286== by 0x5328700: pcre_study (pcre_study.c:1572)
==17286== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17286== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17286== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 1,800 (672 direct, 1,128 indirect) bytes in 4 blocks are definitely lost in loss record 84 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17286== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17286== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17286== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17286== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17286== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,193 bytes in 1 blocks are definitely lost in loss record 86 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17286== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17286== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17286== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17286== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17286== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17286== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17286== by 0x42014F: modsecurity::Transaction::appendResponseBody(unsigned char const*, unsigned long) (transaction.cc:1022)
==17286== by 0x40D5B7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:271)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,248 bytes in 1 blocks are definitely lost in loss record 92 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x4476CA: allocate (new_allocator.h:104)
==17286== by 0x4476CA: allocate (alloc_traits.h:491)
==17286== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17286== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17286== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17286== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17286== by 0x446EFD: rehash (hashtable.h:1936)
==17286== by 0x446EFD: reserve (hashtable_policy.h:957)
==17286== by 0x446EFD: reserve (unordered_map.h:1505)
==17286== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17286== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17286== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17286== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 93 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17286== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 94 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17286== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 95 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17286== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 96 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17286== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 97 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17286== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17286== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17286== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17286== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 15,572 (64 direct, 15,508 indirect) bytes in 1 blocks are definitely lost in loss record 98 of 100
==17286== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17286== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17286== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17286== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== 262,144 bytes in 1 blocks are definitely lost in loss record 100 of 100
==17286== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17286== by 0x40BA0F: Rules (rules.h:63)
==17286== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17286== by 0x407CCC: main (regression.cc:387)
==17286==
==17286== LEAK SUMMARY:
==17286== definitely lost: 280,798 bytes in 16 blocks
==17286== indirectly lost: 58,202 bytes in 147 blocks
==17286== possibly lost: 0 bytes in 0 blocks
==17286== still reachable: 73,352 bytes in 5 blocks
==17286== suppressed: 0 bytes in 0 blocks
==17286== Reachable blocks (those to which a pointer was found) are not shown.
==17286== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17286==
==17286== For counts of detected and suppressed errors, rerun with: -v
==17286== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-setuid.json
RUN: test/test-cases/regression/config-calling_phases_by_name.json
==================================================================
==17348== Memcheck, a memory error detector
==17348== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17348== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17348== Command: ./regression_tests .././test/test-cases/regression/config-calling_phases_by_name.json
==17348==
:test-result: PASS config-calling_phases_by_name.json:Testing Variables :: MATCHED_VAR (1/2)
:test-result: PASS config-calling_phases_by_name.json:Testing Variables :: MATCHED_VAR (2/2)
==17348==
==17348== HEAP SUMMARY:
==17348== in use at exit: 723,789 bytes in 202 blocks
==17348== total heap usage: 12,353 allocs, 12,151 frees, 1,506,081 bytes allocated
==17348==
==17348== 324 bytes in 2 blocks are definitely lost in loss record 77 of 101
==17348== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17348== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17348== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17348== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17348== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 816 bytes in 2 blocks are definitely lost in loss record 82 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 83 of 101
==17348== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17348== by 0x5328700: pcre_study (pcre_study.c:1572)
==17348== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17348== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17348== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 1,454 (688 direct, 766 indirect) bytes in 2 blocks are definitely lost in loss record 84 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x471699: yy::seclang_parser::parse() (seclang-parser.yy:480)
==17348== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17348== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17348== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 2,049 bytes in 1 blocks are definitely lost in loss record 85 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17348== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17348== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17348== by 0x431053: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:482)
==17348== by 0x430091: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:430)
==17348== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17348== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17348== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17348==
==17348== 4,097 bytes in 1 blocks are definitely lost in loss record 86 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17348== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17348== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17348== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17348== by 0x422F90: modsecurity::audit_log::AuditLog::saveIfRelevant(modsecurity::Transaction*, int) (audit_log.cc:238)
==17348== by 0x414D6D: modsecurity::Transaction::processLogging(int) (transaction.cc:1172)
==17348== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 88 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17348== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17348== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17348== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17348== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 16,496 bytes in 2 blocks are definitely lost in loss record 94 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x4476CA: allocate (new_allocator.h:104)
==17348== by 0x4476CA: allocate (alloc_traits.h:491)
==17348== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17348== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17348== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17348== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17348== by 0x446EFD: rehash (hashtable.h:1936)
==17348== by 0x446EFD: reserve (hashtable_policy.h:957)
==17348== by 0x446EFD: reserve (unordered_map.h:1505)
==17348== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17348== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17348== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17348== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 95 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17348== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 96 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17348== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 97 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17348== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 98 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17348== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 24,715 (128 direct, 24,587 indirect) bytes in 2 blocks are definitely lost in loss record 99 of 101
==17348== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17348== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17348== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17348== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== 524,288 bytes in 2 blocks are definitely lost in loss record 101 of 101
==17348== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17348== by 0x40BA0F: Rules (rules.h:63)
==17348== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17348== by 0x407CCC: main (regression.cc:387)
==17348==
==17348== LEAK SUMMARY:
==17348== definitely lost: 550,166 bytes in 25 blocks
==17348== indirectly lost: 100,271 bytes in 172 blocks
==17348== possibly lost: 0 bytes in 0 blocks
==17348== still reachable: 73,352 bytes in 5 blocks
==17348== suppressed: 0 bytes in 0 blocks
==17348== Reachable blocks (those to which a pointer was found) are not shown.
==17348== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17348==
==17348== For counts of detected and suppressed errors, rerun with: -v
==17348== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/config-calling_phases_by_name.json
RUN: test/test-cases/regression/variable-USERID.json
====================================================
==17375== Memcheck, a memory error detector
==17375== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17375== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17375== Command: ./regression_tests .././test/test-cases/regression/variable-USERID.json
==17375==
:test-result: PASS variable-USERID.json:Testing USERID variable (1/2)
:test-result: PASS variable-USERID.json:Testing USERID variable (2/2)
==17375==
==17375== HEAP SUMMARY:
==17375== in use at exit: 726,107 bytes in 226 blocks
==17375== total heap usage: 12,424 allocs, 12,198 frees, 1,554,368 bytes allocated
==17375==
==17375== 232 bytes in 2 blocks are definitely lost in loss record 66 of 97
==17375== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17375== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17375== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17375== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17375== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 816 bytes in 2 blocks are definitely lost in loss record 78 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 79 of 97
==17375== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17375== by 0x5328700: pcre_study (pcre_study.c:1572)
==17375== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17375== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17375== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 2,049 bytes in 1 blocks are definitely lost in loss record 80 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17375== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17375== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17375== by 0x48A687: modsecurity::actions::SetUID::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (set_uid.cc:48)
==17375== by 0x43040E: evaluate (action.h:114)
==17375== by 0x43040E: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==17375== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17375== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17375== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17375==
==17375== 2,255 (840 direct, 1,415 indirect) bytes in 5 blocks are definitely lost in loss record 81 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17375== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17375== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17375== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17375== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17375== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 4,097 bytes in 1 blocks are definitely lost in loss record 82 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17375== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17375== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17375== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17375== by 0x431053: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:482)
==17375== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17375== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17375== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 84 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17375== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17375== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17375== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17375== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 16,496 bytes in 2 blocks are definitely lost in loss record 90 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x4476CA: allocate (new_allocator.h:104)
==17375== by 0x4476CA: allocate (alloc_traits.h:491)
==17375== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17375== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17375== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17375== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17375== by 0x446EFD: rehash (hashtable.h:1936)
==17375== by 0x446EFD: reserve (hashtable_policy.h:957)
==17375== by 0x446EFD: reserve (unordered_map.h:1505)
==17375== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17375== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17375== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17375== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 91 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17375== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 92 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17375== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 93 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17375== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 94 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17375== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 26,324 (128 direct, 26,196 indirect) bytes in 2 blocks are definitely lost in loss record 95 of 97
==17375== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17375== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17375== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17375== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== 524,288 bytes in 2 blocks are definitely lost in loss record 97 of 97
==17375== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17375== by 0x40BA0F: Rules (rules.h:63)
==17375== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17375== by 0x407CCC: main (regression.cc:387)
==17375==
==17375== LEAK SUMMARY:
==17375== definitely lost: 550,226 bytes in 28 blocks
==17375== indirectly lost: 102,529 bytes in 193 blocks
==17375== possibly lost: 0 bytes in 0 blocks
==17375== still reachable: 73,352 bytes in 5 blocks
==17375== suppressed: 0 bytes in 0 blocks
==17375== Reachable blocks (those to which a pointer was found) are not shown.
==17375== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17375==
==17375== For counts of detected and suppressed errors, rerun with: -v
==17375== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-USERID.json
RUN: test/test-cases/regression/request-body-parser-multipart.json
==================================================================
==17412== Memcheck, a memory error detector
==17412== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17412== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17412== Command: ./regression_tests .././test/test-cases/regression/request-body-parser-multipart.json
==17412==
:test-result: PASS request-body-parser-multipart.json:multipart parser (C-D uses single quotes)
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary contains "bOuNdArY")
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary contains "boundary")
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary special char - trailing comma+token)
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary special char - trailing whitespace+token)
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary whitespace in C-T - after name)
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary whitespace in C-T - after value) - apache removes the whitespace, not the case for us... TODO
:test-result: PASS request-body-parser-multipart.json:multipart parser (boundary whitespace in C-T - before value)
:test-result: PASS request-body-parser-multipart.json:multipart parser (data after final boundary)
:test-result: PASS request-body-parser-multipart.json:multipart parser (data contains "--")
:test-result: PASS request-body-parser-multipart.json:multipart parser (final CRLF)
:test-result: PASS request-body-parser-multipart.json:multipart parser (invalid C-T boundary parameter name - case)
:test-result: PASS request-body-parser-multipart.json:multipart parser (invalid C-T boundary parameter name - trailing chars)
:test-result: PASS request-body-parser-multipart.json:multipart parser (invalid C-T boundary separator - comma)
:test-result: PASS request-body-parser-multipart.json:multipart parser (invalid C-T boundary separator - space)
:test-result: PASS request-body-parser-multipart.json:multipart parser (multipart mixed - missing disposition)
:test-result: PASS request-body-parser-multipart.json:multipart parser (multipart mixed - normal)
:test-result: PASS request-body-parser-multipart.json:multipart parser (multiple C-T boundaries - comma separated)
:test-result: PASS request-body-parser-multipart.json:multipart parser (multiple C-T boundaries - first quoted)
:test-result: PASS request-body-parser-multipart.json:multipart parser (no final CRLF) - FIXME: test suit cannot work without the ending \n
:test-result: PASS request-body-parser-multipart.json:multipart parser (normal)
:test-result: PASS request-body-parser-multipart.json:multipart parser (normal)
:test-result: PASS request-body-parser-multipart.json:multipart parser (part header folding - invalid)
:test-result: PASS request-body-parser-multipart.json:multipart parser (part header folding - mixed invalid)
:test-result: PASS request-body-parser-multipart.json:multipart parser (part header folding - mixed)
:test-result: PASS request-body-parser-multipart.json:multipart parser (part header folding - space)
:test-result: PASS request-body-parser-multipart.json:multipart parser (part header folding - tab)
:test-result: PASS request-body-parser-multipart.json:multipart parser (partial quoted boundary value - only end quote)
:test-result: PASS request-body-parser-multipart.json:multipart parser (partial quoted boundary value - only start quote)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary - normal)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - contained quote)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - two quoted values)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - whitespace after)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - whitespace after)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - whitespace before)
:test-result: PASS request-body-parser-multipart.json:multipart parser (quoted boundary value - whitespace between)
:test-result: PASS request-body-parser-multipart.json:multipart parser error (bad disposition)
:test-result: PASS request-body-parser-multipart.json:multipart parser error (no disposition name)
:test-result: PASS request-body-parser-multipart.json:multipart parser error (no disposition name)
:test-result: PASS request-body-parser-multipart.json:multipart parser error (no disposition)
:test-result: PASS request-body-parser-multipart.json:multipart parser error (no final boundary)
==17412==
==17412== HEAP SUMMARY:
==17412== in use at exit: 13,330,390 bytes in 5,244 blocks
==17412== total heap usage: 202,617 allocs, 197,373 frees, 22,973,075 bytes allocated
==17412==
==17412== 88 bytes in 1 blocks are definitely lost in loss record 9 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x4739E9: yy::seclang_parser::parse() (seclang-parser.yy:736)
==17412== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17412== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17412== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 264 bytes in 3 blocks are definitely lost in loss record 22 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x472BA9: yy::seclang_parser::parse() (seclang-parser.yy:745)
==17412== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17412== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17412== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 2,049 bytes in 1 blocks are definitely lost in loss record 78 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x4415D2: modsecurity::actions::Deny::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (deny.cc:29)
==17412== by 0x431079: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:484)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412==
==17412== 2,049 bytes in 1 blocks are definitely lost in loss record 79 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x4139EF: operator<< <std::char_traits<char> > (ostream:561)
==17412== by 0x4139EF: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x42E81B: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:299)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 2,049 bytes in 1 blocks are definitely lost in loss record 80 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x438461: debug (multipart.h:177)
==17412== by 0x438461: modsecurity::RequestBodyProcessor::Multipart::process_boundary(int) (multipart.cc:780)
==17412== by 0x43D367: modsecurity::RequestBodyProcessor::Multipart::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (multipart.cc:1271)
==17412== by 0x41CAEE: modsecurity::Transaction::processRequestBody() (transaction.cc:608)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 2,049 bytes in 1 blocks are definitely lost in loss record 81 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x4387E4: debug (multipart.h:177)
==17412== by 0x4387E4: modsecurity::RequestBodyProcessor::Multipart::process_boundary(int) (multipart.cc:786)
==17412== by 0x43D367: modsecurity::RequestBodyProcessor::Multipart::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (multipart.cc:1271)
==17412== by 0x41CAEE: modsecurity::Transaction::processRequestBody() (transaction.cc:608)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 2,049 bytes in 1 blocks are definitely lost in loss record 82 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x43A0C9: debug (multipart.h:177)
==17412== by 0x43A0C9: modsecurity::RequestBodyProcessor::Multipart::multipart_complete() (multipart.cc:873)
==17412== by 0x41CB0C: modsecurity::Transaction::processRequestBody() (transaction.cc:610)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 4,097 bytes in 1 blocks are definitely lost in loss record 132 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17412== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==17412== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 4,097 bytes in 1 blocks are definitely lost in loss record 133 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x42FDF5: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:402)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 4,097 bytes in 1 blocks are definitely lost in loss record 134 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x4139EF: operator<< <std::char_traits<char> > (ostream:561)
==17412== by 0x4139EF: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x431053: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:482)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 4,097 bytes in 1 blocks are definitely lost in loss record 135 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x4139EF: operator<< <std::char_traits<char> > (ostream:561)
==17412== by 0x4139EF: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17412== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==17412== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 5,692 bytes in 41 blocks are definitely lost in loss record 137 of 166
==17412== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17412== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17412== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17412== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17412== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 8,194 bytes in 2 blocks are definitely lost in loss record 139 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17412== by 0x414CA1: modsecurity::Transaction::processLogging(int) (transaction.cc:1134)
==17412== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 8,195 bytes in 3 blocks are definitely lost in loss record 140 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x42F927: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:391)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 8,248 bytes in 1 blocks are possibly lost in loss record 141 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x4476CA: allocate (new_allocator.h:104)
==17412== by 0x4476CA: allocate (alloc_traits.h:491)
==17412== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17412== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17412== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17412== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17412== by 0x446EFD: rehash (hashtable.h:1936)
==17412== by 0x446EFD: reserve (hashtable_policy.h:957)
==17412== by 0x446EFD: reserve (unordered_map.h:1505)
==17412== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17412== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17412== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17412== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 10,243 bytes in 3 blocks are definitely lost in loss record 143 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x43A801: debug (multipart.h:177)
==17412== by 0x43A801: modsecurity::RequestBodyProcessor::Multipart::multipart_complete() (multipart.cc:957)
==17412== by 0x41CB0C: modsecurity::Transaction::processRequestBody() (transaction.cc:610)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 16,388 bytes in 4 blocks are definitely lost in loss record 145 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x414D43: modsecurity::Transaction::processLogging(int) (transaction.cc:1171)
==17412== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 16,728 bytes in 41 blocks are definitely lost in loss record 146 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 18,396 (4,428 direct, 13,968 indirect) bytes in 41 blocks are definitely lost in loss record 147 of 166
==17412== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17412== by 0x5328700: pcre_study (pcre_study.c:1572)
==17412== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17412== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17412== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 20,485 bytes in 5 blocks are definitely lost in loss record 150 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==17412== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 28,551 (15,312 direct, 13,239 indirect) bytes in 58 blocks are definitely lost in loss record 151 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x43855C: modsecurity::RequestBodyProcessor::Multipart::process_boundary(int) (multipart.cc:794)
==17412== by 0x43D367: modsecurity::RequestBodyProcessor::Multipart::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (multipart.cc:1271)
==17412== by 0x41CAEE: modsecurity::Transaction::processRequestBody() (transaction.cc:608)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 47,119 bytes in 15 blocks are definitely lost in loss record 152 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17412== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17412== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17412== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17412== by 0x42E81B: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:299)
==17412== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17412== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17412== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 329,920 bytes in 40 blocks are definitely lost in loss record 154 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x4476CA: allocate (new_allocator.h:104)
==17412== by 0x4476CA: allocate (alloc_traits.h:491)
==17412== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17412== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17412== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17412== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17412== by 0x446EFD: rehash (hashtable.h:1936)
==17412== by 0x446EFD: reserve (hashtable_policy.h:957)
==17412== by 0x446EFD: reserve (unordered_map.h:1505)
==17412== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17412== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17412== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17412== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 340,792 (2,624 direct, 338,168 indirect) bytes in 41 blocks are definitely lost in loss record 160 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17412== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 340,792 (2,624 direct, 338,168 indirect) bytes in 41 blocks are definitely lost in loss record 161 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17412== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 340,792 (2,624 direct, 338,168 indirect) bytes in 41 blocks are definitely lost in loss record 162 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17412== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 340,792 (2,624 direct, 338,168 indirect) bytes in 41 blocks are definitely lost in loss record 163 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17412== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 601,374 (2,624 direct, 598,750 indirect) bytes in 41 blocks are definitely lost in loss record 164 of 166
==17412== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17412== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17412== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17412== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 1,310,720 bytes in 5 blocks are possibly lost in loss record 165 of 166
==17412== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17412== by 0x40BA0F: Rules (rules.h:63)
==17412== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== 9,437,184 bytes in 36 blocks are definitely lost in loss record 166 of 166
==17412== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17412== by 0x40BA0F: Rules (rules.h:63)
==17412== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17412== by 0x407CCC: main (regression.cc:387)
==17412==
==17412== LEAK SUMMARY:
==17412== definitely lost: 9,959,993 bytes in 507 blocks
==17412== indirectly lost: 1,978,629 bytes in 4,727 blocks
==17412== possibly lost: 1,318,968 bytes in 6 blocks
==17412== still reachable: 72,800 bytes in 4 blocks
==17412== suppressed: 0 bytes in 0 blocks
==17412== Reachable blocks (those to which a pointer was found) are not shown.
==17412== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17412==
==17412== For counts of detected and suppressed errors, rerun with: -v
==17412== ERROR SUMMARY: 30 errors from 30 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/request-body-parser-multipart.json
RUN: test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json
===================================================================
==17414== Memcheck, a memory error detector
==17414== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17414== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17414== Command: ./regression_tests .././test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json
==17414==
:test-result: PASS variable-RESPONSE_CONTENT_TYPE.json:Testing Variables :: RESPONSE_CONTENT_TYPE
==17414==
==17414== HEAP SUMMARY:
==17414== in use at exit: 401,028 bytes in 92 blocks
==17414== total heap usage: 7,528 allocs, 7,436 frees, 961,527 bytes allocated
==17414==
==17414== 189 bytes in 1 blocks are definitely lost in loss record 59 of 81
==17414== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17414== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17414== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17414== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17414== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 408 bytes in 1 blocks are definitely lost in loss record 63 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 64 of 81
==17414== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17414== by 0x5328700: pcre_study (pcre_study.c:1572)
==17414== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17414== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17414== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 2,049 bytes in 1 blocks are definitely lost in loss record 66 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17414== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17414== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17414== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17414== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17414== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17414== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17414== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17414== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,248 bytes in 1 blocks are definitely lost in loss record 73 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x4476CA: allocate (new_allocator.h:104)
==17414== by 0x4476CA: allocate (alloc_traits.h:491)
==17414== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17414== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17414== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17414== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17414== by 0x446EFD: rehash (hashtable.h:1936)
==17414== by 0x446EFD: reserve (hashtable_policy.h:957)
==17414== by 0x446EFD: reserve (unordered_map.h:1505)
==17414== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17414== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17414== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17414== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17414== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17414== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17414== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17414== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17414== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17414== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17414== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17414== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 12,156 (64 direct, 12,092 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 81
==17414== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17414== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17414== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17414== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== 262,144 bytes in 1 blocks are definitely lost in loss record 81 of 81
==17414== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17414== by 0x40BA0F: Rules (rules.h:63)
==17414== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17414== by 0x407CCC: main (regression.cc:387)
==17414==
==17414== LEAK SUMMARY:
==17414== definitely lost: 274,018 bytes in 12 blocks
==17414== indirectly lost: 53,658 bytes in 75 blocks
==17414== possibly lost: 0 bytes in 0 blocks
==17414== still reachable: 73,352 bytes in 5 blocks
==17414== suppressed: 0 bytes in 0 blocks
==17414== Reachable blocks (those to which a pointer was found) are not shown.
==17414== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17414==
==17414== For counts of detected and suppressed errors, rerun with: -v
==17414== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json
RUN: test/test-cases/regression/action-disruptive.json
======================================================
==17418== Memcheck, a memory error detector
==17418== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17418== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17418== Command: ./regression_tests .././test/test-cases/regression/action-disruptive.json
==17418==
:test-result: PASS action-disruptive.json:Testing Disruptive actions (1/n)
:test-result: PASS action-disruptive.json:Testing Disruptive actions (2/n)
:test-result: PASS action-disruptive.json:Testing Disruptive actions (3/n)
:test-result: PASS action-disruptive.json:Testing Disruptive actions (4/n)
:test-result: PASS action-disruptive.json:Testing Disruptive actions (5/n)
==17418==
==17418== HEAP SUMMARY:
==17418== in use at exit: 1,664,784 bytes in 274 blocks
==17418== total heap usage: 24,567 allocs, 24,293 frees, 2,965,642 bytes allocated
==17418==
==17418== 352 bytes in 4 blocks are definitely lost in loss record 19 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x440392: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:90)
==17418== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17418== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17418== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17418== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 384 bytes in 4 blocks are definitely lost in loss record 20 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x43EDA8: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:66)
==17418== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17418== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17418== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17418== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 483 bytes in 5 blocks are definitely lost in loss record 45 of 69
==17418== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17418== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17418== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17418== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17418== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 1,025 bytes in 1 blocks are definitely lost in loss record 48 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17418== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17418== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17418== by 0x42D842: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:204)
==17418== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17418== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17418== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17418== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17418==
==17418== 1,025 bytes in 1 blocks are definitely lost in loss record 49 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17418== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17418== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17418== by 0x42DD30: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:228)
==17418== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17418== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17418== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17418== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17418==
==17418== 1,025 bytes in 1 blocks are definitely lost in loss record 50 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17418== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17418== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17418== by 0x42DC4C: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:219)
==17418== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17418== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17418== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17418== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17418==
==17418== 1,812 (540 direct, 1,272 indirect) bytes in 5 blocks are definitely lost in loss record 51 of 69
==17418== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17418== by 0x5328700: pcre_study (pcre_study.c:1572)
==17418== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17418== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17418== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 2,040 bytes in 5 blocks are definitely lost in loss record 52 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 2,049 bytes in 1 blocks are definitely lost in loss record 53 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17418== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17418== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17418== by 0x422F90: modsecurity::audit_log::AuditLog::saveIfRelevant(modsecurity::Transaction*, int) (audit_log.cc:238)
==17418== by 0x414D6D: modsecurity::Transaction::processLogging(int) (transaction.cc:1172)
==17418== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 2,049 bytes in 1 blocks are definitely lost in loss record 54 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17418== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17418== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17418== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17418== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==17418== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 56 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17418== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17418== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17418== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17418== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 41,240 bytes in 5 blocks are definitely lost in loss record 62 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x4476CA: allocate (new_allocator.h:104)
==17418== by 0x4476CA: allocate (alloc_traits.h:491)
==17418== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17418== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17418== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17418== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17418== by 0x446EFD: rehash (hashtable.h:1936)
==17418== by 0x446EFD: reserve (hashtable_policy.h:957)
==17418== by 0x446EFD: reserve (unordered_map.h:1505)
==17418== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17418== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17418== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17418== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 63 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17418== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 64 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17418== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 65 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17418== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 66 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17418== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 52,222 (320 direct, 51,902 indirect) bytes in 5 blocks are definitely lost in loss record 67 of 69
==17418== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17418== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17418== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17418== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== 1,310,720 bytes in 5 blocks are definitely lost in loss record 69 of 69
==17418== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17418== by 0x40BA0F: Rules (rules.h:63)
==17418== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17418== by 0x407CCC: main (regression.cc:387)
==17418==
==17418== LEAK SUMMARY:
==17418== definitely lost: 1,365,084 bytes in 64 blocks
==17418== indirectly lost: 226,348 bytes in 205 blocks
==17418== possibly lost: 0 bytes in 0 blocks
==17418== still reachable: 73,352 bytes in 5 blocks
==17418== suppressed: 0 bytes in 0 blocks
==17418== Reachable blocks (those to which a pointer was found) are not shown.
==17418== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17418==
==17418== For counts of detected and suppressed errors, rerun with: -v
==17418== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-disruptive.json
RUN: test/test-cases/regression/variable-REQUEST_BASENAME.json
==============================================================
==17442== Memcheck, a memory error detector
==17442== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17442== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17442== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_BASENAME.json
==17442==
:test-result: PASS variable-REQUEST_BASENAME.json:Testing Variables :: REQUEST_BASENAME
==17442==
==17442== HEAP SUMMARY:
==17442== in use at exit: 401,514 bytes in 99 blocks
==17442== total heap usage: 7,584 allocs, 7,485 frees, 965,189 bytes allocated
==17442==
==17442== 180 bytes in 1 blocks are definitely lost in loss record 62 of 84
==17442== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17442== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17442== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17442== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17442== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 408 bytes in 1 blocks are definitely lost in loss record 66 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 67 of 84
==17442== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17442== by 0x5328700: pcre_study (pcre_study.c:1572)
==17442== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17442== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17442== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 2,049 bytes in 1 blocks are definitely lost in loss record 69 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17442== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17442== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17442== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17442== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17442== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17442== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17442== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17442== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,248 bytes in 1 blocks are definitely lost in loss record 76 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x4476CA: allocate (new_allocator.h:104)
==17442== by 0x4476CA: allocate (alloc_traits.h:491)
==17442== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17442== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17442== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17442== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17442== by 0x446EFD: rehash (hashtable.h:1936)
==17442== by 0x446EFD: reserve (hashtable_policy.h:957)
==17442== by 0x446EFD: reserve (unordered_map.h:1505)
==17442== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17442== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17442== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17442== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17442== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17442== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17442== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17442== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 81 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17442== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17442== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17442== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17442== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 12,651 (64 direct, 12,587 indirect) bytes in 1 blocks are definitely lost in loss record 82 of 84
==17442== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17442== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17442== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17442== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== 262,144 bytes in 1 blocks are definitely lost in loss record 84 of 84
==17442== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17442== by 0x40BA0F: Rules (rules.h:63)
==17442== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17442== by 0x407CCC: main (regression.cc:387)
==17442==
==17442== LEAK SUMMARY:
==17442== definitely lost: 274,009 bytes in 12 blocks
==17442== indirectly lost: 54,153 bytes in 82 blocks
==17442== possibly lost: 0 bytes in 0 blocks
==17442== still reachable: 73,352 bytes in 5 blocks
==17442== suppressed: 0 bytes in 0 blocks
==17442== Reachable blocks (those to which a pointer was found) are not shown.
==17442== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17442==
==17442== For counts of detected and suppressed errors, rerun with: -v
==17442== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_BASENAME.json
RUN: test/test-cases/regression/sec_component_signature.json
============================================================
==17468== Memcheck, a memory error detector
==17468== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17468== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17468== Command: ./regression_tests .././test/test-cases/regression/sec_component_signature.json
==17468==
:test-result: PASS sec_component_signature.json:SecComponentSignature
==17468==
==17468== HEAP SUMMARY:
==17468== in use at exit: 402,444 bytes in 123 blocks
==17468== total heap usage: 7,697 allocs, 7,574 frees, 978,423 bytes allocated
==17468==
==17468== 73 bytes in 1 blocks are definitely lost in loss record 20 of 75
==17468== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17468== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17468== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17468== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17468== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 204 (108 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 51 of 75
==17468== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17468== by 0x5328700: pcre_study (pcre_study.c:1572)
==17468== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17468== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17468== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 408 bytes in 1 blocks are definitely lost in loss record 56 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 1,138 (640 direct, 498 indirect) bytes in 10 blocks are definitely lost in loss record 59 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x446CEF: modsecurity::collection::backend::InMemoryPerProcess::resolveMultiMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<modsecurity::collection::Variable const*, std::allocator<modsecurity::collection::Variable const*> >*) (in_memory-per_process.cc:104)
==17468== by 0x41558D: modsecurity::Transaction::toJSON[abi:cxx11](int) (transaction.cc:1395)
==17468== by 0x424077: modsecurity::audit_log::writer::Parallel::write(modsecurity::Transaction*, int) (parallel.cc:101)
==17468== by 0x423085: modsecurity::audit_log::AuditLog::saveIfRelevant(modsecurity::Transaction*, int) (audit_log.cc:259)
==17468== by 0x414D6D: modsecurity::Transaction::processLogging(int) (transaction.cc:1172)
==17468== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 2,049 bytes in 1 blocks are definitely lost in loss record 60 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17468== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17468== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17468== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17468== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17468== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17468== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17468== by 0x4303D7: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:495)
==17468== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17468== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17468== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,248 bytes in 1 blocks are definitely lost in loss record 67 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x4476CA: allocate (new_allocator.h:104)
==17468== by 0x4476CA: allocate (alloc_traits.h:491)
==17468== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17468== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17468== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17468== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17468== by 0x446EFD: rehash (hashtable.h:1936)
==17468== by 0x446EFD: reserve (hashtable_policy.h:957)
==17468== by 0x446EFD: reserve (unordered_map.h:1505)
==17468== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17468== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17468== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17468== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 68 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17468== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 69 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17468== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 70 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17468== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 71 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17468== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 72 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17468== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17468== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17468== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17468== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 12,814 (64 direct, 12,750 indirect) bytes in 1 blocks are definitely lost in loss record 73 of 75
==17468== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17468== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17468== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17468== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== 262,144 bytes in 1 blocks are definitely lost in loss record 75 of 75
==17468== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17468== by 0x40BA0F: Rules (rules.h:63)
==17468== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17468== by 0x407CCC: main (regression.cc:387)
==17468==
==17468== LEAK SUMMARY:
==17468== definitely lost: 274,542 bytes in 22 blocks
==17468== indirectly lost: 54,550 bytes in 96 blocks
==17468== possibly lost: 0 bytes in 0 blocks
==17468== still reachable: 73,352 bytes in 5 blocks
==17468== suppressed: 0 bytes in 0 blocks
==17468== Reachable blocks (those to which a pointer was found) are not shown.
==17468== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17468==
==17468== For counts of detected and suppressed errors, rerun with: -v
==17468== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/sec_component_signature.json
RUN: test/test-cases/regression/variable-REQUEST_METHOD.json
============================================================
==17499== Memcheck, a memory error detector
==17499== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17499== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17499== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_METHOD.json
==17499==
:test-result: PASS variable-REQUEST_METHOD.json:Testing Variables :: REQUEST_METHOD
==17499==
==17499== HEAP SUMMARY:
==17499== in use at exit: 401,002 bytes in 92 blocks
==17499== total heap usage: 7,518 allocs, 7,426 frees, 960,805 bytes allocated
==17499==
==17499== 163 bytes in 1 blocks are definitely lost in loss record 59 of 81
==17499== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17499== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17499== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17499== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17499== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 408 bytes in 1 blocks are definitely lost in loss record 63 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 64 of 81
==17499== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17499== by 0x5328700: pcre_study (pcre_study.c:1572)
==17499== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17499== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17499== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 2,049 bytes in 1 blocks are definitely lost in loss record 66 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17499== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17499== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17499== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17499== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17499== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17499== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17499== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17499== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,248 bytes in 1 blocks are definitely lost in loss record 73 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x4476CA: allocate (new_allocator.h:104)
==17499== by 0x4476CA: allocate (alloc_traits.h:491)
==17499== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17499== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17499== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17499== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17499== by 0x446EFD: rehash (hashtable.h:1936)
==17499== by 0x446EFD: reserve (hashtable_policy.h:957)
==17499== by 0x446EFD: reserve (unordered_map.h:1505)
==17499== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17499== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17499== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17499== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 74 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17499== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17499== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17499== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17499== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17499== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17499== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17499== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17499== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 12,156 (64 direct, 12,092 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 81
==17499== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17499== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17499== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17499== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== 262,144 bytes in 1 blocks are definitely lost in loss record 81 of 81
==17499== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17499== by 0x40BA0F: Rules (rules.h:63)
==17499== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17499== by 0x407CCC: main (regression.cc:387)
==17499==
==17499== LEAK SUMMARY:
==17499== definitely lost: 273,992 bytes in 12 blocks
==17499== indirectly lost: 53,658 bytes in 75 blocks
==17499== possibly lost: 0 bytes in 0 blocks
==17499== still reachable: 73,352 bytes in 5 blocks
==17499== suppressed: 0 bytes in 0 blocks
==17499== Reachable blocks (those to which a pointer was found) are not shown.
==17499== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17499==
==17499== For counts of detected and suppressed errors, rerun with: -v
==17499== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_METHOD.json
RUN: test/test-cases/regression/action-initcol.json
===================================================
==17525== Memcheck, a memory error detector
==17525== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17525== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17525== Command: ./regression_tests .././test/test-cases/regression/action-initcol.json
==17525==
:test-result: PASS action-initcol.json:Testing initcol action
==17525==
==17525== HEAP SUMMARY:
==17525== in use at exit: 406,431 bytes in 133 blocks
==17525== total heap usage: 7,933 allocs, 7,800 frees, 1,032,977 bytes allocated
==17525==
==17525== 88 bytes in 1 blocks are definitely lost in loss record 62 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x4737E4: yy::seclang_parser::parse() (seclang-parser.yy:754)
==17525== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17525== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17525== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 163 bytes in 1 blocks are definitely lost in loss record 73 of 100
==17525== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17525== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17525== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17525== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17525== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 408 bytes in 1 blocks are definitely lost in loss record 80 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 82 of 100
==17525== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17525== by 0x5328700: pcre_study (pcre_study.c:1572)
==17525== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17525== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17525== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 1,820 (672 direct, 1,148 indirect) bytes in 4 blocks are definitely lost in loss record 84 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17525== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17525== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17525== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17525== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17525== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 4,097 bytes in 1 blocks are definitely lost in loss record 85 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x5C10D37: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_int<long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x5C10ECC: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long) const (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x5C1D3E9: std::ostream& std::ostream::_M_insert<long>(long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17525== by 0x4139FA: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17525== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17525== by 0x4303D7: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:495)
==17525== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17525== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17525==
==17525== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 92 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17525== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 93 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17525== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 94 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17525== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 8,408 (8,248 direct, 160 indirect) bytes in 1 blocks are definitely lost in loss record 95 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x4476CA: allocate (new_allocator.h:104)
==17525== by 0x4476CA: allocate (alloc_traits.h:491)
==17525== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17525== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17525== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17525== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17525== by 0x446EFD: rehash (hashtable.h:1936)
==17525== by 0x446EFD: reserve (hashtable_policy.h:957)
==17525== by 0x446EFD: reserve (unordered_map.h:1505)
==17525== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17525== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17525== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17525== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 8,411 (64 direct, 8,347 indirect) bytes in 1 blocks are definitely lost in loss record 96 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17525== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 97 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17525== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17525== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17525== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17525== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 13,370 (64 direct, 13,306 indirect) bytes in 1 blocks are definitely lost in loss record 98 of 100
==17525== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17525== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17525== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17525== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== 262,144 bytes in 1 blocks are definitely lost in loss record 100 of 100
==17525== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17525== by 0x40BA0F: Rules (rules.h:63)
==17525== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17525== by 0x407CCC: main (regression.cc:387)
==17525==
==17525== LEAK SUMMARY:
==17525== definitely lost: 276,800 bytes in 17 blocks
==17525== indirectly lost: 56,279 bytes in 111 blocks
==17525== possibly lost: 0 bytes in 0 blocks
==17525== still reachable: 73,352 bytes in 5 blocks
==17525== suppressed: 0 bytes in 0 blocks
==17525== Reachable blocks (those to which a pointer was found) are not shown.
==17525== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17525==
==17525== For counts of detected and suppressed errors, rerun with: -v
==17525== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/action-initcol.json
RUN: test/test-cases/regression/variable-FILES.json
===================================================
==17556== Memcheck, a memory error detector
==17556== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17556== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17556== Command: ./regression_tests .././test/test-cases/regression/variable-FILES.json
==17556==
:test-result: PASS variable-FILES.json:Testing Variables :: FILES (1/1)
==17556==
==17556== HEAP SUMMARY:
==17556== in use at exit: 409,724 bytes in 191 blocks
==17556== total heap usage: 7,954 allocs, 7,763 frees, 1,001,265 bytes allocated
==17556==
==17556== 131 bytes in 1 blocks are definitely lost in loss record 109 of 144
==17556== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17556== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17556== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17556== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17556== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 408 bytes in 1 blocks are definitely lost in loss record 122 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 123 of 144
==17556== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17556== by 0x5328700: pcre_study (pcre_study.c:1572)
==17556== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17556== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17556== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 1,692 (792 direct, 900 indirect) bytes in 3 blocks are definitely lost in loss record 128 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x43855C: modsecurity::RequestBodyProcessor::Multipart::process_boundary(int) (multipart.cc:794)
==17556== by 0x43D367: modsecurity::RequestBodyProcessor::Multipart::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (multipart.cc:1271)
==17556== by 0x41CAEE: modsecurity::Transaction::processRequestBody() (transaction.cc:608)
==17556== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 4,097 bytes in 1 blocks are definitely lost in loss record 129 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17556== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17556== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17556== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17556== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17556== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17556== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17556== by 0x42F927: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:391)
==17556== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17556== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==17556== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,248 bytes in 1 blocks are definitely lost in loss record 136 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x4476CA: allocate (new_allocator.h:104)
==17556== by 0x4476CA: allocate (alloc_traits.h:491)
==17556== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17556== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17556== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17556== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17556== by 0x446EFD: rehash (hashtable.h:1936)
==17556== by 0x446EFD: reserve (hashtable_policy.h:957)
==17556== by 0x446EFD: reserve (unordered_map.h:1505)
==17556== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17556== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17556== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17556== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 137 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17556== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 138 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17556== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 139 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17556== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 140 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17556== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 141 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17556== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17556== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17556== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17556== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 17,170 (64 direct, 17,106 indirect) bytes in 1 blocks are definitely lost in loss record 142 of 144
==17556== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17556== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17556== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17556== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== 262,144 bytes in 1 blocks are definitely lost in loss record 144 of 144
==17556== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17556== by 0x40BA0F: Rules (rules.h:63)
==17556== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17556== by 0x407CCC: main (regression.cc:387)
==17556==
==17556== LEAK SUMMARY:
==17556== definitely lost: 276,800 bytes in 15 blocks
==17556== indirectly lost: 59,572 bytes in 171 blocks
==17556== possibly lost: 0 bytes in 0 blocks
==17556== still reachable: 73,352 bytes in 5 blocks
==17556== suppressed: 0 bytes in 0 blocks
==17556== Reachable blocks (those to which a pointer was found) are not shown.
==17556== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17556==
==17556== For counts of detected and suppressed errors, rerun with: -v
==17556== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-FILES.json
RUN: test/test-cases/regression/variable-REQUEST_BODY.json
==========================================================
==17577== Memcheck, a memory error detector
==17577== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17577== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17577== Command: ./regression_tests .././test/test-cases/regression/variable-REQUEST_BODY.json
==17577==
:test-result: PASS variable-REQUEST_BODY.json:Testing Variables :: REQUEST_BODY
==17577==
==17577== HEAP SUMMARY:
==17577== in use at exit: 407,159 bytes in 130 blocks
==17577== total heap usage: 7,771 allocs, 7,641 frees, 998,103 bytes allocated
==17577==
==17577== 225 bytes in 1 blocks are definitely lost in loss record 89 of 115
==17577== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17577== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17577== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17577== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17577== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 408 bytes in 1 blocks are definitely lost in loss record 92 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 93 of 115
==17577== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17577== by 0x5328700: pcre_study (pcre_study.c:1572)
==17577== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17577== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17577== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 4,097 bytes in 1 blocks are definitely lost in loss record 100 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17577== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17577== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17577== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17577== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17577== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17577== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17577== by 0x42F380: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:369)
==17577== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17577== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==17577== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,248 bytes in 1 blocks are definitely lost in loss record 107 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x4476CA: allocate (new_allocator.h:104)
==17577== by 0x4476CA: allocate (alloc_traits.h:491)
==17577== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17577== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17577== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17577== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17577== by 0x446EFD: rehash (hashtable.h:1936)
==17577== by 0x446EFD: reserve (hashtable_policy.h:957)
==17577== by 0x446EFD: reserve (unordered_map.h:1505)
==17577== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17577== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17577== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17577== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 108 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17577== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 109 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17577== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 110 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17577== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 111 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17577== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17577== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17577== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17577== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17577== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 16,203 (64 direct, 16,139 indirect) bytes in 1 blocks are definitely lost in loss record 113 of 115
==17577== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17577== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17577== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17577== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== 262,144 bytes in 1 blocks are definitely lost in loss record 115 of 115
==17577== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17577== by 0x40BA0F: Rules (rules.h:63)
==17577== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17577== by 0x407CCC: main (regression.cc:387)
==17577==
==17577== LEAK SUMMARY:
==17577== definitely lost: 276,102 bytes in 12 blocks
==17577== indirectly lost: 57,705 bytes in 113 blocks
==17577== possibly lost: 0 bytes in 0 blocks
==17577== still reachable: 73,352 bytes in 5 blocks
==17577== suppressed: 0 bytes in 0 blocks
==17577== Reachable blocks (those to which a pointer was found) are not shown.
==17577== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17577==
==17577== For counts of detected and suppressed errors, rerun with: -v
==17577== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-REQUEST_BODY.json
RUN: test/test-cases/regression/request-body-parser-multipart-crlf.json
=======================================================================
==17634== Memcheck, a memory error detector
==17634== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17634== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17634== Command: ./regression_tests .././test/test-cases/regression/request-body-parser-multipart-crlf.json
==17634==
:test-result: PASS request-body-parser-multipart-crlf.json:multipart parser (final CRLF)
==17634==
==17634== HEAP SUMMARY:
==17634== in use at exit: 397,496 bytes in 139 blocks
==17634== total heap usage: 7,900 allocs, 7,761 frees, 991,433 bytes allocated
==17634==
==17634== 188 bytes in 1 blocks are definitely lost in loss record 92 of 114
==17634== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17634== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17634== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17634== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17634== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 408 bytes in 1 blocks are definitely lost in loss record 96 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 97 of 114
==17634== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17634== by 0x5328700: pcre_study (pcre_study.c:1572)
==17634== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17634== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17634== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 1,246 (528 direct, 718 indirect) bytes in 2 blocks are definitely lost in loss record 100 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x43855C: modsecurity::RequestBodyProcessor::Multipart::process_boundary(int) (multipart.cc:794)
==17634== by 0x43D367: modsecurity::RequestBodyProcessor::Multipart::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (multipart.cc:1271)
==17634== by 0x41CAEE: modsecurity::Transaction::processRequestBody() (transaction.cc:608)
==17634== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 4,097 bytes in 1 blocks are definitely lost in loss record 101 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17634== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17634== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17634== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17634== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17634== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17634== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17634== by 0x42E81B: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:299)
==17634== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17634== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17634== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 8,248 bytes in 1 blocks are definitely lost in loss record 107 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x4476CA: allocate (new_allocator.h:104)
==17634== by 0x4476CA: allocate (alloc_traits.h:491)
==17634== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17634== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17634== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17634== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17634== by 0x446EFD: rehash (hashtable.h:1936)
==17634== by 0x446EFD: reserve (hashtable_policy.h:957)
==17634== by 0x446EFD: reserve (unordered_map.h:1505)
==17634== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17634== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17634== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17634== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 108 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17634== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 109 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17634== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 110 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17634== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 111 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17634== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 14,649 (64 direct, 14,585 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 114
==17634== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17634== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17634== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17634== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== 262,144 bytes in 1 blocks are definitely lost in loss record 114 of 114
==17634== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17634== by 0x40BA0F: Rules (rules.h:63)
==17634== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17634== by 0x407CCC: main (regression.cc:387)
==17634==
==17634== LEAK SUMMARY:
==17634== definitely lost: 276,041 bytes in 13 blocks
==17634== indirectly lost: 48,655 bytes in 122 blocks
==17634== possibly lost: 0 bytes in 0 blocks
==17634== still reachable: 72,800 bytes in 4 blocks
==17634== suppressed: 0 bytes in 0 blocks
==17634== Reachable blocks (those to which a pointer was found) are not shown.
==17634== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17634==
==17634== For counts of detected and suppressed errors, rerun with: -v
==17634== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/request-body-parser-multipart-crlf.json
RUN: test/test-cases/regression/variable-TIME_EPOCH.json
========================================================
==17659== Memcheck, a memory error detector
==17659== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17659== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17659== Command: ./regression_tests .././test/test-cases/regression/variable-TIME_EPOCH.json
==17659==
:test-result: PASS variable-TIME_EPOCH.json:Testing Variables :: TIME_EPOCH
==17659==
==17659== HEAP SUMMARY:
==17659== in use at exit: 401,475 bytes in 97 blocks
==17659== total heap usage: 7,570 allocs, 7,473 frees, 964,979 bytes allocated
==17659==
==17659== 191 bytes in 1 blocks are definitely lost in loss record 60 of 82
==17659== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17659== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17659== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17659== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17659== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 408 bytes in 1 blocks are definitely lost in loss record 64 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 82
==17659== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17659== by 0x5328700: pcre_study (pcre_study.c:1572)
==17659== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17659== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17659== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 2,049 bytes in 1 blocks are definitely lost in loss record 67 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17659== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17659== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17659== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17659== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17659== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17659== by 0x425C87: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:171)
==17659== by 0x41FB75: modsecurity::Transaction::processResponseBody() (transaction.cc:982)
==17659== by 0x40D5BF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:272)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,248 bytes in 1 blocks are definitely lost in loss record 74 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x4476CA: allocate (new_allocator.h:104)
==17659== by 0x4476CA: allocate (alloc_traits.h:491)
==17659== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17659== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17659== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17659== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17659== by 0x446EFD: rehash (hashtable.h:1936)
==17659== by 0x446EFD: reserve (hashtable_policy.h:957)
==17659== by 0x446EFD: reserve (unordered_map.h:1505)
==17659== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17659== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17659== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17659== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 75 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17659== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17659== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17659== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17659== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17659== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17659== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17659== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17659== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 12,601 (64 direct, 12,537 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 82
==17659== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17659== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17659== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17659== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== 262,144 bytes in 1 blocks are definitely lost in loss record 82 of 82
==17659== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17659== by 0x40BA0F: Rules (rules.h:63)
==17659== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17659== by 0x407CCC: main (regression.cc:387)
==17659==
==17659== LEAK SUMMARY:
==17659== definitely lost: 274,020 bytes in 12 blocks
==17659== indirectly lost: 54,103 bytes in 80 blocks
==17659== possibly lost: 0 bytes in 0 blocks
==17659== still reachable: 73,352 bytes in 5 blocks
==17659== suppressed: 0 bytes in 0 blocks
==17659== Reachable blocks (those to which a pointer was found) are not shown.
==17659== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17659==
==17659== For counts of detected and suppressed errors, rerun with: -v
==17659== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-TIME_EPOCH.json
RUN: test/test-cases/regression/variable-HIGHEST_SEVERITY.json
==============================================================
==17676== Memcheck, a memory error detector
==17676== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17676== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17676== Command: ./regression_tests .././test/test-cases/regression/variable-HIGHEST_SEVERITY.json
==17676==
:test-result: PASS variable-HIGHEST_SEVERITY.json:Testing Variables :: HIGHEST_SEVERITY (1/2)
:test-result: PASS variable-HIGHEST_SEVERITY.json:Testing Variables :: HIGHEST_SEVERITY (2/2)
==17676==
==17676== HEAP SUMMARY:
==17676== in use at exit: 721,054 bytes in 200 blocks
==17676== total heap usage: 12,277 allocs, 12,077 frees, 1,494,143 bytes allocated
==17676==
==17676== 326 bytes in 2 blocks are definitely lost in loss record 67 of 89
==17676== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17676== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17676== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17676== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17676== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 816 bytes in 2 blocks are definitely lost in loss record 72 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 73 of 89
==17676== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17676== by 0x5328700: pcre_study (pcre_study.c:1572)
==17676== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17676== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17676== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 4,098 bytes in 2 blocks are definitely lost in loss record 74 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17676== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17676== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17676== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17676== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17676== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17676== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17676== by 0x42FDF5: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:402)
==17676== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17676== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17676== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17676== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17676== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17676== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17676== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 16,496 bytes in 2 blocks are definitely lost in loss record 82 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x4476CA: allocate (new_allocator.h:104)
==17676== by 0x4476CA: allocate (alloc_traits.h:491)
==17676== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17676== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17676== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17676== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17676== by 0x446EFD: rehash (hashtable.h:1936)
==17676== by 0x446EFD: reserve (hashtable_policy.h:957)
==17676== by 0x446EFD: reserve (unordered_map.h:1505)
==17676== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17676== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17676== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17676== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 83 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17676== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 84 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17676== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 85 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17676== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 86 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17676== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 25,480 (128 direct, 25,352 indirect) bytes in 2 blocks are definitely lost in loss record 87 of 89
==17676== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17676== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17676== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17676== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== 524,288 bytes in 2 blocks are definitely lost in loss record 89 of 89
==17676== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17676== by 0x40BA0F: Rules (rules.h:63)
==17676== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17676== by 0x407CCC: main (regression.cc:387)
==17676==
==17676== LEAK SUMMARY:
==17676== definitely lost: 547,432 bytes in 23 blocks
==17676== indirectly lost: 100,270 bytes in 172 blocks
==17676== possibly lost: 0 bytes in 0 blocks
==17676== still reachable: 73,352 bytes in 5 blocks
==17676== suppressed: 0 bytes in 0 blocks
==17676== Reachable blocks (those to which a pointer was found) are not shown.
==17676== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17676==
==17676== For counts of detected and suppressed errors, rerun with: -v
==17676== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-HIGHEST_SEVERITY.json
RUN: test/test-cases/regression/variable-variation-exclusion.json
=================================================================
==17763== Memcheck, a memory error detector
==17763== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17763== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17763== Command: ./regression_tests .././test/test-cases/regression/variable-variation-exclusion.json
==17763==
:test-result: PASS variable-variation-exclusion.json:Testing variable variations :: exclusion (1/2)
:test-result: PASS variable-variation-exclusion.json:Testing variable variations :: exclusion (2/2)
==17763==
==17763== HEAP SUMMARY:
==17763== in use at exit: 729,927 bytes in 251 blocks
==17763== total heap usage: 12,785 allocs, 12,534 frees, 1,560,368 bytes allocated
==17763==
==17763== 88 bytes in 1 blocks are definitely lost in loss record 30 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x4738C6: yy::seclang_parser::parse() (seclang-parser.yy:737)
==17763== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17763== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17763== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 199 (176 direct, 23 indirect) bytes in 2 blocks are definitely lost in loss record 64 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x472A7E: yy::seclang_parser::parse() (seclang-parser.yy:746)
==17763== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17763== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17763== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 215 (128 direct, 87 indirect) bytes in 2 blocks are definitely lost in loss record 65 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x446C29: modsecurity::collection::backend::InMemoryPerProcess::resolveMultiMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<modsecurity::collection::Variable const*, std::allocator<modsecurity::collection::Variable const*> >*) (in_memory-per_process.cc:91)
==17763== by 0x42E9FE: evaluateInternal (variable.h:81)
==17763== by 0x42E9FE: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:309)
==17763== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17763== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17763== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 454 bytes in 2 blocks are definitely lost in loss record 72 of 100
==17763== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17763== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17763== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17763== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17763== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 816 bytes in 2 blocks are definitely lost in loss record 78 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 80 of 100
==17763== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17763== by 0x5328700: pcre_study (pcre_study.c:1572)
==17763== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17763== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17763== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 1,164 (640 direct, 524 indirect) bytes in 10 blocks are definitely lost in loss record 81 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x446CEF: modsecurity::collection::backend::InMemoryPerProcess::resolveMultiMatches(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<modsecurity::collection::Variable const*, std::allocator<modsecurity::collection::Variable const*> >*) (in_memory-per_process.cc:104)
==17763== by 0x42E9FE: evaluateInternal (variable.h:81)
==17763== by 0x42E9FE: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:309)
==17763== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17763== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17763== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 4,097 bytes in 1 blocks are definitely lost in loss record 83 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17763== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17763== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17763== by 0x41F10F: modsecurity::Transaction::appendRequestBody(unsigned char const*, unsigned long) (transaction.cc:773)
==17763== by 0x40D3C7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:250)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 4,097 bytes in 1 blocks are definitely lost in loss record 84 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17763== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17763== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17763== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17763== by 0x422F90: modsecurity::audit_log::AuditLog::saveIfRelevant(modsecurity::Transaction*, int) (audit_log.cc:238)
==17763== by 0x414D6D: modsecurity::Transaction::processLogging(int) (transaction.cc:1172)
==17763== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 8,248 bytes in 1 blocks are possibly lost in loss record 86 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x4476CA: allocate (new_allocator.h:104)
==17763== by 0x4476CA: allocate (alloc_traits.h:491)
==17763== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17763== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17763== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17763== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17763== by 0x446EFD: rehash (hashtable.h:1936)
==17763== by 0x446EFD: reserve (hashtable_policy.h:957)
==17763== by 0x446EFD: reserve (unordered_map.h:1505)
==17763== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17763== by 0x4251AB: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17763== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 8,376 (128 direct, 8,248 indirect) bytes in 2 blocks are definitely lost in loss record 88 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17763== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17763== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17763== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17763== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17763== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 16,496 bytes in 2 blocks are definitely lost in loss record 94 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x4476CA: allocate (new_allocator.h:104)
==17763== by 0x4476CA: allocate (alloc_traits.h:491)
==17763== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17763== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17763== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17763== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17763== by 0x446EFD: rehash (hashtable.h:1936)
==17763== by 0x446EFD: reserve (hashtable_policy.h:957)
==17763== by 0x446EFD: reserve (unordered_map.h:1505)
==17763== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17763== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17763== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17763== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 95 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17763== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 96 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17763== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 97 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17763== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 28,463 (128 direct, 28,335 indirect) bytes in 2 blocks are definitely lost in loss record 98 of 100
==17763== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17763== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17763== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17763== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== 524,288 bytes in 2 blocks are definitely lost in loss record 100 of 100
==17763== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17763== by 0x40BA0F: Rules (rules.h:63)
==17763== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17763== by 0x407CCC: main (regression.cc:387)
==17763==
==17763== LEAK SUMMARY:
==17763== definitely lost: 552,688 bytes in 38 blocks
==17763== indirectly lost: 95,639 bytes in 207 blocks
==17763== possibly lost: 8,248 bytes in 1 blocks
==17763== still reachable: 73,352 bytes in 5 blocks
==17763== suppressed: 0 bytes in 0 blocks
==17763== Reachable blocks (those to which a pointer was found) are not shown.
==17763== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17763==
==17763== For counts of detected and suppressed errors, rerun with: -v
==17763== ERROR SUMMARY: 18 errors from 18 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-variation-exclusion.json
RUN: test/test-cases/regression/variable-GEO.json
=================================================
==17734== Memcheck, a memory error detector
==17734== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17734== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17734== Command: ./regression_tests .././test/test-cases/regression/variable-GEO.json
==17734==
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:AREA_CODE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:CITY
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:COUNTRY_CODE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:COUNTRY_CODE3
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:COUNTRY_CONTINENT
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:COUNTRY_NAME
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:DMA_CODE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:LATITUDE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:LONGITUDE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:POSTAL_CODE
:test-result: PASS variable-GEO.json:Testing Variables :: GEO:REGION
==17734==
==17734== HEAP SUMMARY:
==17734== in use at exit: 3,626,344 bytes in 1,163 blocks
==17734== total heap usage: 56,131 allocs, 54,968 frees, 6,747,680 bytes allocated
==17734==
==17734== 1,865 bytes in 11 blocks are definitely lost in loss record 81 of 103
==17734== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17734== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17734== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17734== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17734== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 4,488 bytes in 11 blocks are definitely lost in loss record 85 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 5,148 (1,188 direct, 3,960 indirect) bytes in 11 blocks are definitely lost in loss record 86 of 103
==17734== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17734== by 0x5328700: pcre_study (pcre_study.c:1572)
==17734== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17734== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17734== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 88 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17734== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17734== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17734== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17734== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 45,067 bytes in 11 blocks are definitely lost in loss record 89 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17734== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17734== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17734== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17734== by 0x4139EF: operator<< <std::char_traits<char> > (ostream:561)
==17734== by 0x4139EF: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17734== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17734== by 0x42F927: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:391)
==17734== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17734== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17734== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 90,728 bytes in 11 blocks are definitely lost in loss record 96 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x4476CA: allocate (new_allocator.h:104)
==17734== by 0x4476CA: allocate (alloc_traits.h:491)
==17734== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17734== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17734== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17734== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17734== by 0x446EFD: rehash (hashtable.h:1936)
==17734== by 0x446EFD: reserve (hashtable_policy.h:957)
==17734== by 0x446EFD: reserve (unordered_map.h:1505)
==17734== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17734== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17734== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17734== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 91,432 (704 direct, 90,728 indirect) bytes in 11 blocks are definitely lost in loss record 97 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17734== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 91,432 (704 direct, 90,728 indirect) bytes in 11 blocks are definitely lost in loss record 98 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17734== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 91,432 (704 direct, 90,728 indirect) bytes in 11 blocks are definitely lost in loss record 99 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17734== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 91,432 (704 direct, 90,728 indirect) bytes in 11 blocks are definitely lost in loss record 100 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17734== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 147,618 (704 direct, 146,914 indirect) bytes in 11 blocks are definitely lost in loss record 101 of 103
==17734== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17734== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17734== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17734== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 524,288 bytes in 2 blocks are possibly lost in loss record 102 of 103
==17734== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17734== by 0x40BA0F: Rules (rules.h:63)
==17734== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== 2,359,296 bytes in 9 blocks are definitely lost in loss record 103 of 103
==17734== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17734== by 0x40BA0F: Rules (rules.h:63)
==17734== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17734== by 0x407CCC: main (regression.cc:387)
==17734==
==17734== LEAK SUMMARY:
==17734== definitely lost: 2,506,704 bytes in 120 blocks
==17734== indirectly lost: 522,000 bytes in 1,036 blocks
==17734== possibly lost: 524,288 bytes in 2 blocks
==17734== still reachable: 73,352 bytes in 5 blocks
==17734== suppressed: 0 bytes in 0 blocks
==17734== Reachable blocks (those to which a pointer was found) are not shown.
==17734== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17734==
==17734== For counts of detected and suppressed errors, rerun with: -v
==17734== ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-GEO.json
RUN: test/test-cases/regression/variable-SESSIONID.json
=======================================================
==17771== Memcheck, a memory error detector
==17771== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17771== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17771== Command: ./regression_tests .././test/test-cases/regression/variable-SESSIONID.json
==17771==
:test-result: PASS variable-SESSIONID.json:Testing SESSIONID variable (1/2)
:test-result: PASS variable-SESSIONID.json:Testing SESSIONID variable (2/2)
==17771==
==17771== HEAP SUMMARY:
==17771== in use at exit: 737,480 bytes in 310 blocks
==17771== total heap usage: 13,049 allocs, 12,739 frees, 1,643,351 bytes allocated
==17771==
==17771== 282 bytes in 2 blocks are definitely lost in loss record 68 of 102
==17771== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17771== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17771== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17771== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17771== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 816 bytes in 2 blocks are definitely lost in loss record 80 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 82 of 102
==17771== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17771== by 0x5328700: pcre_study (pcre_study.c:1572)
==17771== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17771== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17771== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 3,590 (1,344 direct, 2,246 indirect) bytes in 8 blocks are definitely lost in loss record 85 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x44CF1D: modsecurity::operators::Rx::Rx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool) (rx.h:40)
==17771== by 0x449E7A: modsecurity::operators::Operator::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (operator.cc:155)
==17771== by 0x4710FE: yy::seclang_parser::parse() (seclang-parser.yy:461)
==17771== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17771== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17771== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 4,097 bytes in 1 blocks are definitely lost in loss record 86 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17771== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17771== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17771== by 0x48B0BE: modsecurity::actions::SetVar::evaluate(modsecurity::Rule*, modsecurity::Transaction*) (set_var.cc:138)
==17771== by 0x43040E: evaluate (action.h:114)
==17771== by 0x43040E: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:497)
==17771== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17771== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17771== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17771==
==17771== 8,193 bytes in 1 blocks are definitely lost in loss record 88 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x5C1C8EC: std::ostream::put(char) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17771== by 0x413A48: endl<char, std::char_traits<char> > (ostream:591)
==17771== by 0x413A48: operator<< (ostream:113)
==17771== by 0x413A48: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17771== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17771== by 0x42FDF5: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:402)
==17771== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17771== by 0x4142BC: modsecurity::Transaction::processRequestHeaders() (transaction.cc:418)
==17771== by 0x40D387: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:242)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 89 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17771== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17771== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17771== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17771== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 16,496 bytes in 2 blocks are definitely lost in loss record 95 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x4476CA: allocate (new_allocator.h:104)
==17771== by 0x4476CA: allocate (alloc_traits.h:491)
==17771== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17771== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17771== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17771== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17771== by 0x446EFD: rehash (hashtable.h:1936)
==17771== by 0x446EFD: reserve (hashtable_policy.h:957)
==17771== by 0x446EFD: reserve (unordered_map.h:1505)
==17771== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17771== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17771== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17771== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 96 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17771== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 97 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17771== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 98 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17771== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 16,983 (128 direct, 16,855 indirect) bytes in 2 blocks are definitely lost in loss record 99 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17771== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 29,809 (128 direct, 29,681 indirect) bytes in 2 blocks are definitely lost in loss record 100 of 102
==17771== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17771== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17771== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17771== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== 524,288 bytes in 2 blocks are definitely lost in loss record 102 of 102
==17771== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17771== by 0x40BA0F: Rules (rules.h:63)
==17771== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17771== by 0x407CCC: main (regression.cc:387)
==17771==
==17771== LEAK SUMMARY:
==17771== definitely lost: 556,924 bytes in 31 blocks
==17771== indirectly lost: 107,204 bytes in 274 blocks
==17771== possibly lost: 0 bytes in 0 blocks
==17771== still reachable: 73,352 bytes in 5 blocks
==17771== suppressed: 0 bytes in 0 blocks
==17771== Reachable blocks (those to which a pointer was found) are not shown.
==17771== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17771==
==17771== For counts of detected and suppressed errors, rerun with: -v
==17771== ERROR SUMMARY: 14 errors from 14 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-SESSIONID.json
RUN: test/test-cases/regression/variable-SERVER_PORT.json
=========================================================
==17781== Memcheck, a memory error detector
==17781== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17781== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17781== Command: ./regression_tests .././test/test-cases/regression/variable-SERVER_PORT.json
==17781==
:test-result: PASS variable-SERVER_PORT.json:Testing Variables :: SERVER_PORT
:test-result: PASS variable-SERVER_PORT.json:Testing Variables :: SERVER_PORT
==17781==
==17781== HEAP SUMMARY:
==17781== in use at exit: 720,760 bytes in 186 blocks
==17781== total heap usage: 12,185 allocs, 11,999 frees, 1,488,363 bytes allocated
==17781==
==17781== 310 bytes in 2 blocks are definitely lost in loss record 58 of 82
==17781== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17781== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17781== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17781== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17781== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 816 bytes in 2 blocks are definitely lost in loss record 65 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 936 (216 direct, 720 indirect) bytes in 2 blocks are definitely lost in loss record 66 of 82
==17781== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17781== by 0x5328700: pcre_study (pcre_study.c:1572)
==17781== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17781== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17781== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 4,098 bytes in 2 blocks are definitely lost in loss record 67 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17781== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17781== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17781== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17781== by 0x413A0F: operator<< <std::char_traits<char> > (ostream:561)
==17781== by 0x413A0F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17781== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17781== by 0x414BF9: modsecurity::Transaction::processLogging(int) (transaction.cc:1123)
==17781== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 69 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17781== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17781== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17781== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17781== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 16,496 bytes in 2 blocks are definitely lost in loss record 75 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x4476CA: allocate (new_allocator.h:104)
==17781== by 0x4476CA: allocate (alloc_traits.h:491)
==17781== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17781== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17781== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17781== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17781== by 0x446EFD: rehash (hashtable.h:1936)
==17781== by 0x446EFD: reserve (hashtable_policy.h:957)
==17781== by 0x446EFD: reserve (unordered_map.h:1505)
==17781== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17781== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17781== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17781== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 76 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17781== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 77 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17781== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 78 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17781== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 16,624 (128 direct, 16,496 indirect) bytes in 2 blocks are definitely lost in loss record 79 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17781== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 25,202 (128 direct, 25,074 indirect) bytes in 2 blocks are definitely lost in loss record 80 of 82
==17781== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17781== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17781== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17781== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== 524,288 bytes in 2 blocks are definitely lost in loss record 82 of 82
==17781== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17781== by 0x40BA0F: Rules (rules.h:63)
==17781== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17781== by 0x407CCC: main (regression.cc:387)
==17781==
==17781== LEAK SUMMARY:
==17781== definitely lost: 547,416 bytes in 23 blocks
==17781== indirectly lost: 99,992 bytes in 158 blocks
==17781== possibly lost: 0 bytes in 0 blocks
==17781== still reachable: 73,352 bytes in 5 blocks
==17781== suppressed: 0 bytes in 0 blocks
==17781== Reachable blocks (those to which a pointer was found) are not shown.
==17781== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17781==
==17781== For counts of detected and suppressed errors, rerun with: -v
==17781== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-SERVER_PORT.json
RUN: test/test-cases/regression/variable-DURATION.json
======================================================
==17801== Memcheck, a memory error detector
==17801== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17801== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17801== Command: ./regression_tests .././test/test-cases/regression/variable-DURATION.json
==17801==
:test-result: PASS variable-DURATION.json:Testing Variables :: AUTH_TYPE
==17801==
==17801== HEAP SUMMARY:
==17801== in use at exit: 401,704 bytes in 102 blocks
==17801== total heap usage: 7,704 allocs, 7,602 frees, 974,913 bytes allocated
==17801==
==17801== 137 bytes in 1 blocks are definitely lost in loss record 57 of 83
==17801== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17801== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17801== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17801== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17801== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 408 bytes in 1 blocks are definitely lost in loss record 64 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 468 (108 direct, 360 indirect) bytes in 1 blocks are definitely lost in loss record 65 of 83
==17801== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17801== by 0x5328700: pcre_study (pcre_study.c:1572)
==17801== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17801== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17801== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 2,049 bytes in 1 blocks are definitely lost in loss record 68 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17801== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17801== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17801== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17801== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17801== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17801== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17801== by 0x42E81B: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:299)
==17801== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17801== by 0x4143CC: modsecurity::Transaction::processResponseHeaders() (transaction.cc:838)
==17801== by 0x40D577: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:263)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,248 bytes in 1 blocks are definitely lost in loss record 75 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x4476CA: allocate (new_allocator.h:104)
==17801== by 0x4476CA: allocate (alloc_traits.h:491)
==17801== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17801== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17801== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17801== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17801== by 0x446EFD: rehash (hashtable.h:1936)
==17801== by 0x446EFD: reserve (hashtable_policy.h:957)
==17801== by 0x446EFD: reserve (unordered_map.h:1505)
==17801== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17801== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17801== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17801== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 76 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17801== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 77 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17801== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 78 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17801== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,312 (64 direct, 8,248 indirect) bytes in 1 blocks are definitely lost in loss record 79 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17801== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 80 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17801== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17801== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17801== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17801== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 12,884 (64 direct, 12,820 indirect) bytes in 1 blocks are definitely lost in loss record 81 of 83
==17801== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17801== by 0x4453E1: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:44)
==17801== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17801== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== 262,144 bytes in 1 blocks are definitely lost in loss record 83 of 83
==17801== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17801== by 0x40BA0F: Rules (rules.h:63)
==17801== by 0x40BA0F: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:115)
==17801== by 0x407CCC: main (regression.cc:387)
==17801==
==17801== LEAK SUMMARY:
==17801== definitely lost: 273,966 bytes in 12 blocks
==17801== indirectly lost: 54,386 bytes in 85 blocks
==17801== possibly lost: 0 bytes in 0 blocks
==17801== still reachable: 73,352 bytes in 5 blocks
==17801== suppressed: 0 bytes in 0 blocks
==17801== Reachable blocks (those to which a pointer was found) are not shown.
==17801== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==17801==
==17801== For counts of detected and suppressed errors, rerun with: -v
==17801== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
valgrind --tool=memcheck --leak-check=full --show-reachable=no ./regression_tests .././test/test-cases/regression/variable-DURATION.json
RUN: test/test-cases/regression/secruleengine.json
==================================================
==17836== Memcheck, a memory error detector
==17836== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==17836== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==17836== Command: ./regression_tests .././test/test-cases/regression/secruleengine.json
==17836==
:test-result: PASS secruleengine.json:Testing Disruptive actions (1/n)
:test-result: PASS secruleengine.json:Testing Disruptive actions (2/n)
:test-result: PASS secruleengine.json:Testing Disruptive actions (3/n)
:test-result: PASS secruleengine.json:Testing Disruptive actions (4/n)
:test-result: PASS secruleengine.json:Testing Disruptive actions (5/n)
==17836==
==17836== HEAP SUMMARY:
==17836== in use at exit: 1,663,582 bytes in 258 blocks
==17836== total heap usage: 24,535 allocs, 24,277 frees, 2,965,233 bytes allocated
==17836==
==17836== 440 bytes in 5 blocks are definitely lost in loss record 42 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x440392: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:90)
==17836== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17836== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17836== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17836== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 480 bytes in 5 blocks are definitely lost in loss record 44 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x43EDA8: modsecurity::actions::Action::instantiate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (action.cc:66)
==17836== by 0x46E5EC: yy::seclang_parser::parse() (seclang-parser.yy:900)
==17836== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17836== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17836== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 713 bytes in 5 blocks are definitely lost in loss record 46 of 67
==17836== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17836== by 0x52E4641: pcre_compile2 (pcre_compile.c:9364)
==17836== by 0x45D2A9: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:43)
==17836== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17836== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 1,025 bytes in 1 blocks are definitely lost in loss record 47 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17836== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17836== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17836== by 0x42D842: modsecurity::Rule::evaluateActions(modsecurity::Transaction*) (rule.cc:204)
==17836== by 0x42EEFA: modsecurity::Rule::evaluate(modsecurity::Transaction*) (rule.cc:281)
==17836== by 0x425D12: modsecurity::Rules::evaluate(int, modsecurity::Transaction*) (rules.cc:176)
==17836== by 0x41C770: modsecurity::Transaction::processRequestBody() (transaction.cc:711)
==17836== by 0x40D3CF: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:251)
==17836==
==17836== 2,040 bytes in 5 blocks are definitely lost in loss record 49 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x40B14B: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:90)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 2,049 bytes in 1 blocks are definitely lost in loss record 50 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x413A1F: operator<< <char, std::char_traits<char>, std::allocator<char> > (basic_string.h:5177)
==17836== by 0x413A1F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17836== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17836== by 0x414CE4: modsecurity::Transaction::processLogging(int) (transaction.cc:1141)
==17836== by 0x40C452: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:279)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 2,340 (540 direct, 1,800 indirect) bytes in 5 blocks are definitely lost in loss record 51 of 67
==17836== at 0x4C2DBB6: malloc (vg_replace_malloc.c:299)
==17836== by 0x5328700: pcre_study (pcre_study.c:1572)
==17836== by 0x45D2BD: modsecurity::Utils::Regex::Regex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (regex.cc:45)
==17836== by 0x413D5A: modsecurity_test::CustomDebugLog::contains(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:37)
==17836== by 0x40C471: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:285)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 3,075 bytes in 3 blocks are definitely lost in loss record 52 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x5C2D86C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C21CC4: std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C2BE68: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x5C1CEB5: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==17836== by 0x413A0F: operator<< <std::char_traits<char> > (ostream:561)
==17836== by 0x413A0F: modsecurity_test::CustomDebugLog::write(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (custom_debug_log.cc:32)
==17836== by 0x414184: modsecurity::Transaction::debug(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (transaction.cc:185)
==17836== by 0x42014F: modsecurity::Transaction::appendResponseBody(unsigned char const*, unsigned long) (transaction.cc:1022)
==17836== by 0x40D5B7: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:271)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 8,766 (552 direct, 8,214 indirect) bytes in 1 blocks are definitely lost in loss record 54 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x42C271: modsecurity::DebugLogWriter::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (debug_log_writer.cc:35)
==17836== by 0x4722DB: yy::seclang_parser::parse() (seclang-parser.yy:615)
==17836== by 0x461E2D: modsecurity::Parser::Driver::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (driver.cc:128)
==17836== by 0x4281D8: modsecurity::Rules::load(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (rules.cc:129)
==17836== by 0x40BA93: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:140)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 41,240 bytes in 5 blocks are definitely lost in loss record 60 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x4476CA: allocate (new_allocator.h:104)
==17836== by 0x4476CA: allocate (alloc_traits.h:491)
==17836== by 0x4476CA: _M_allocate_buckets (hashtable_policy.h:1996)
==17836== by 0x4476CA: _M_allocate_buckets (hashtable.h:347)
==17836== by 0x4476CA: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, false>) (hashtable.h:2015)
==17836== by 0x447847: std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, modsecurity::collection::backend::MyEqual, modsecurity::collection::backend::MyHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, false> >::_M_rehash(unsigned long, unsigned long const&) (hashtable.h:1953)
==17836== by 0x446EFD: rehash (hashtable.h:1936)
==17836== by 0x446EFD: reserve (hashtable_policy.h:957)
==17836== by 0x446EFD: reserve (unordered_map.h:1505)
==17836== by 0x446EFD: modsecurity::collection::backend::InMemoryPerProcess::InMemoryPerProcess() (in_memory-per_process.cc:35)
==17836== by 0x4454A7: modsecurity::collection::Collections::Collections(modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*, modsecurity::collection::Collection*) (collections.cc:46)
==17836== by 0x41E1DA: modsecurity::Transaction::Transaction(modsecurity::ModSecurity*, modsecurity::Rules*, void*) (transaction.cc:120)
==17836== by 0x40C401: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:218)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 61 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x425156: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17836== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 62 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x42516E: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17836== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 63 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x425187: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17836== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 41,560 (320 direct, 41,240 indirect) bytes in 5 blocks are definitely lost in loss record 64 of 67
==17836== at 0x4C2E1D6: operator new(unsigned long) (vg_replace_malloc.c:334)
==17836== by 0x4251A0: modsecurity::ModSecurity::ModSecurity() (modsecurity.cc:53)
==17836== by 0x40B4E3: perform_unit_test(modsecurity_test::ModSecurityTest<modsecurity_test::RegressionTest>*, std::vector<modsecurity_test::RegressionTest*, std::allocator<modsecurity_test::RegressionTest*> >*, modsecurity_test::ModSecurityTestResults<modsecurity_test::RegressionTestResult>*, int*) (regression.cc:111)
==17836== by 0x407CCC: main (regression.cc:387)
==17836==
==17836== 51,102 (320 direct, 50,782 indirect) bytes in 5 blocks are definitely los
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment