From 8b9041c2da73605fa50cd2641a23a4f1c05644ff Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Thu, 16 Jun 2016 12:40:05 -0300 Subject: [PATCH] Fix memory leak on VerifyCC operator --- src/operators/verify_cc.cc | 10 ++++++++++ src/operators/verify_cc.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/operators/verify_cc.cc b/src/operators/verify_cc.cc index 6c914245..88ad55e4 100644 --- a/src/operators/verify_cc.cc +++ b/src/operators/verify_cc.cc @@ -26,6 +26,16 @@ namespace modsecurity { namespace operators { +VerifyCC::~VerifyCC() { + if (m_pc != NULL) { + pcre_free(m_pc); + m_pc = NULL; + } + if (m_pce != NULL) { + pcre_free_study(m_pce); + m_pce = NULL; + } +} /** * Luhn Mod-10 Method (ISO 2894/ANSI 4.13) diff --git a/src/operators/verify_cc.h b/src/operators/verify_cc.h index d3366dfb..468dd931 100644 --- a/src/operators/verify_cc.h +++ b/src/operators/verify_cc.h @@ -31,6 +31,7 @@ class VerifyCC : public Operator { : Operator(op, param, negation), m_pc(NULL), m_pce(NULL) { } + ~VerifyCC(); int luhnVerify(const char *ccnumber, int len); bool evaluate(Transaction *transaction, const std::string &input) override;