diff --git a/CHANGES b/CHANGES index bd4a863c..a12c058d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ v3.0.x - YYYY-MMM-DD (To be released) ------------------------------------- + - Fixed resource load on ip match from file + [#1674 - @zimmerle, @StefaanSeys] - Fixed examples compilation while using disable-shared [#1670 - @zimmerle, @ivanbaldo] - Fixed compilation issue while xml is disabled diff --git a/src/operators/ip_match_from_file.cc b/src/operators/ip_match_from_file.cc index 7dd8eb69..9dc1ee23 100644 --- a/src/operators/ip_match_from_file.cc +++ b/src/operators/ip_match_from_file.cc @@ -14,6 +14,7 @@ */ #include "src/operators/ip_match_from_file.h" +#include "src/utils/system.h" #include @@ -33,7 +34,11 @@ bool IpMatchFromFile::init(const std::string &file, if (m_param.compare(0, 8, "https://") == 0) { res = m_tree.addFromUrl(m_param, &e); } else { - res = m_tree.addFromFile(m_param, &e); + std::string resf = utils::find_resource(m_param, file, error);\ + if (resf == "") { + return false; + } + res = m_tree.addFromFile(resf, &e); } if (res == false) { diff --git a/test/test-cases/regression/operator-ipMatchFromFile.json b/test/test-cases/regression/operator-ipMatchFromFile.json index f23db022..3b6950fa 100644 --- a/test/test-cases/regression/operator-ipMatchFromFile.json +++ b/test/test-cases/regression/operator-ipMatchFromFile.json @@ -80,7 +80,7 @@ ] }, "expected":{ - "parser_error":"File: operator-ipMatchFromFile.json. Line: 2. Column: 19. Failed to open file: file-not-found.txt" + "parser_error":"Rules error. File: operator-ipMatchFromFile.json. Line: 2. Column: 19. Looking at: 'file-not-found.txt', 'file-not-found.txt', 'operator-ipMatchFromFile.json/file-not-found.txt', 'operator-ipMatchFromFile.json/file-not-found.txt'." }, "rules":[ "SecRuleEngine On",