Skip to content

Commit 9b40a04

Browse files
committed
Cosmetics: fix some cppcheck complains to please QA
1 parent 310cbf8 commit 9b40a04

File tree

26 files changed

+241
-74
lines changed

26 files changed

+241
-74
lines changed

Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ parser:
5757

5858
cppcheck:
5959
@cppcheck -U YYSTYPE -U MBEDTLS_MD5_ALT -U MBEDTLS_SHA1_ALT \
60-
-D MS_CPPCHECK_DISABLED_FOR_PARSER \
60+
-D MS_CPPCHECK_DISABLED_FOR_PARSER -U YY_USER_INIT \
6161
--suppressions-list=./test/cppcheck_suppressions.txt \
6262
--enable=warning,style,performance,portability,unusedFunction,missingInclude \
6363
--inconclusive \

examples/multiprocess_c/multi.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ void process_special_request (int j) {
4242
msc_process_uri(transaction,
4343
"http://www.modsecurity.org/test?foo=herewego",
4444
"GET", "1.1");
45-
msc_add_request_header(transaction, "User-Agent",
46-
"Basic ModSecurity example");
45+
msc_add_request_header(transaction,
46+
(const unsigned char *) "User-Agent",
47+
(const unsigned char *) "Basic ModSecurity example");
4748
msc_process_request_headers(transaction);
4849
msc_process_request_body(transaction);
49-
msc_add_response_header(transaction, "Content-type", "text/html");
50+
msc_add_response_header(transaction,
51+
(const unsigned char *) "Content-type",
52+
(const unsigned char *) "text/html");
5053
msc_process_response_headers(transaction, 200, "HTTP 1.0");
5154
msc_process_response_body(transaction);
5255
msc_process_logging(transaction);
@@ -70,11 +73,14 @@ void process_request (int j) {
7073
msc_process_uri(transaction,
7174
"http://www.modsecurity.org/test?key1=value1&key2=value2&key3=value3",
7275
"GET", "1.1");
73-
msc_add_request_header(transaction, "User-Agent",
74-
"Basic ModSecurity example");
76+
msc_add_request_header(transaction,
77+
(const unsigned char *) "User-Agent",
78+
(const unsigned char *) "Basic ModSecurity example");
7579
msc_process_request_headers(transaction);
7680
msc_process_request_body(transaction);
77-
msc_add_response_header(transaction, "Content-type", "text/html");
81+
msc_add_response_header(transaction,
82+
(const unsigned char *) "Content-type",
83+
(const unsigned char *) "text/html");
7884
msc_process_response_headers(transaction, 200, "HTTP 1.0");
7985
msc_process_response_body(transaction);
8086
msc_process_logging(transaction);

examples/reading_logs_via_rule_message/simple_request.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ int main(int argc, char **argv) {
2929
return -1;
3030
}
3131

32-
*(argv++);
33-
std::string rules(*argv);
32+
char *rule = *(argv++);
33+
std::string rules(rule);
3434
ReadingLogsViaRuleMessage rlvrm(request_header, request_uri, request_body,
3535
response_headers, response_body, ip, rules);
3636
rlvrm.process();

examples/using_bodies_in_chunks/simple_request.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,8 @@ int main(int argc, char **argv) {
133133
std::cout << std::endl << std::endl;
134134
return -1;
135135
}
136-
*(argv++);
137-
138-
std::string rules_arg(*argv);
136+
char *rule = *(argv++);
137+
std::string rules_arg(rule);
139138

140139
/**
141140
* ModSecurity initial setup

headers/modsecurity/actions/action.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,22 @@ class Action {
5656
set_name_and_payload(_action);
5757
}
5858

59+
Action(const Action &a)
60+
: m_isNone(a.m_isNone),
61+
temporaryAction(a.temporaryAction),
62+
action_kind(a.action_kind),
63+
m_name(a.m_name),
64+
m_parser_payload(a.m_parser_payload) { }
65+
66+
Action &operator=(const Action& a) {
67+
m_isNone = a.m_isNone;
68+
temporaryAction = a.temporaryAction;
69+
action_kind = a.action_kind;
70+
m_name = a.m_name;
71+
m_parser_payload = a.m_parser_payload;
72+
return *this;
73+
}
74+
5975
virtual ~Action() { }
6076

6177
virtual std::string evaluate(const std::string &exp,

headers/modsecurity/rule.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,19 @@ class Rule {
7373
m_phase(modsecurity::Phases::RequestHeadersPhase) {
7474
}
7575

76+
Rule(const Rule &other) :
77+
m_fileName(other.m_fileName),
78+
m_lineNumber(other.m_lineNumber),
79+
m_phase(other.m_phase)
80+
{ }
81+
82+
Rule &operator=(const Rule& other) {
83+
m_fileName = other.m_fileName;
84+
m_lineNumber = other.m_lineNumber;
85+
m_phase = other.m_phase;
86+
return *this;
87+
}
88+
7689
virtual bool evaluate(Transaction *transaction) = 0;
7790

7891
virtual bool evaluate(Transaction *transaction,

headers/modsecurity/rule_message.h

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ class RuleMessage {
6969
m_serverIpAddress(trans->m_serverIpAddress),
7070
m_severity(0),
7171
m_uriNoQueryStringDecoded(trans->m_uri_no_query_string_decoded),
72-
m_ver(rule->m_ver)
72+
m_ver(rule->m_ver),
73+
m_tags()
7374
{ }
7475

7576
explicit RuleMessage(RuleMessage *rule) :
@@ -93,9 +94,61 @@ class RuleMessage {
9394
m_serverIpAddress(rule->m_serverIpAddress),
9495
m_severity(rule->m_severity),
9596
m_uriNoQueryStringDecoded(rule->m_uriNoQueryStringDecoded),
96-
m_ver(rule->m_ver)
97+
m_ver(rule->m_ver),
98+
m_tags(rule->m_tags)
9799
{ }
98100

101+
RuleMessage(const RuleMessage& ruleMessage)
102+
: m_accuracy(ruleMessage.m_accuracy),
103+
m_clientIpAddress(ruleMessage.m_clientIpAddress),
104+
m_data(ruleMessage.m_data),
105+
m_id(ruleMessage.m_id),
106+
m_isDisruptive(ruleMessage.m_isDisruptive),
107+
m_match(ruleMessage.m_match),
108+
m_maturity(ruleMessage.m_maturity),
109+
m_message(ruleMessage.m_message),
110+
m_noAuditLog(ruleMessage.m_noAuditLog),
111+
m_phase(ruleMessage.m_phase),
112+
m_reference(ruleMessage.m_reference),
113+
m_rev(ruleMessage.m_rev),
114+
m_rule(ruleMessage.m_rule),
115+
m_ruleFile(ruleMessage.m_ruleFile),
116+
m_ruleId(ruleMessage.m_ruleId),
117+
m_ruleLine(ruleMessage.m_ruleLine),
118+
m_saveMessage(ruleMessage.m_saveMessage),
119+
m_serverIpAddress(ruleMessage.m_serverIpAddress),
120+
m_severity(ruleMessage.m_severity),
121+
m_uriNoQueryStringDecoded(ruleMessage.m_uriNoQueryStringDecoded),
122+
m_ver(ruleMessage.m_ver),
123+
m_tags(ruleMessage.m_tags)
124+
{ }
125+
126+
RuleMessage &operator=(const RuleMessage& ruleMessage) {
127+
m_accuracy = ruleMessage.m_accuracy;
128+
m_clientIpAddress = ruleMessage.m_clientIpAddress;
129+
m_data = ruleMessage.m_data;
130+
m_id = ruleMessage.m_id;
131+
m_isDisruptive = ruleMessage.m_isDisruptive;
132+
m_match = ruleMessage.m_match;
133+
m_maturity = ruleMessage.m_maturity;
134+
m_message = ruleMessage.m_message;
135+
m_noAuditLog = ruleMessage.m_noAuditLog;
136+
m_phase = ruleMessage.m_phase;
137+
m_reference = ruleMessage.m_reference;
138+
m_rev = ruleMessage.m_rev;
139+
m_rule = ruleMessage.m_rule;
140+
m_ruleFile = ruleMessage.m_ruleFile;
141+
m_ruleId = ruleMessage.m_ruleId;
142+
m_ruleLine = ruleMessage.m_ruleLine;
143+
m_saveMessage = ruleMessage.m_saveMessage;
144+
m_serverIpAddress = ruleMessage.m_serverIpAddress;
145+
m_severity = ruleMessage.m_severity;
146+
m_uriNoQueryStringDecoded = ruleMessage.m_uriNoQueryStringDecoded;
147+
m_ver = ruleMessage.m_ver;
148+
m_tags = ruleMessage.m_tags;
149+
return *this;
150+
}
151+
99152
void clean() {
100153
m_data = "";
101154
m_match = "";

headers/modsecurity/rule_with_actions.h

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,57 @@ class RuleWithActions : public Rule {
4545

4646
~RuleWithActions();
4747

48+
RuleWithActions(const RuleWithActions& r)
49+
: Rule(r),
50+
m_rev(r.m_rev),
51+
m_ver(r.m_ver),
52+
m_accuracy(r.m_accuracy),
53+
m_maturity(r.m_maturity),
54+
m_ruleId(r.m_ruleId),
55+
m_chainedRuleChild(r.m_chainedRuleChild),
56+
m_chainedRuleParent(r.m_chainedRuleParent),
57+
m_disruptiveAction(r.m_disruptiveAction),
58+
m_logData(r.m_logData),
59+
m_msg(r.m_msg),
60+
m_severity(r.m_severity),
61+
m_actionsRuntimePos(r.m_actionsRuntimePos),
62+
m_actionsSetVar(r.m_actionsSetVar),
63+
m_actionsTag(r.m_actionsTag),
64+
m_transformations(r.m_transformations),
65+
m_containsCaptureAction(r.m_containsCaptureAction),
66+
m_containsMultiMatchAction(r.m_containsMultiMatchAction),
67+
m_containsStaticBlockAction(r.m_containsStaticBlockAction),
68+
m_isChained(r.m_isChained)
69+
{ }
70+
71+
RuleWithActions &operator=(const RuleWithActions& r) {
72+
Rule::operator = (r);
73+
m_rev = r.m_rev;
74+
m_ver = r.m_ver;
75+
m_accuracy = r.m_accuracy;
76+
m_maturity = r.m_maturity;
77+
m_ruleId = r.m_ruleId;
78+
m_chainedRuleChild = r.m_chainedRuleChild;
79+
m_chainedRuleParent = r.m_chainedRuleParent;
80+
81+
m_disruptiveAction = r.m_disruptiveAction;
82+
m_logData = r.m_logData;
83+
m_msg = r.m_msg;
84+
m_severity = r.m_severity;
85+
m_actionsRuntimePos = r.m_actionsRuntimePos;
86+
m_actionsSetVar = r.m_actionsSetVar;
87+
m_actionsTag = r.m_actionsTag;
88+
89+
m_transformations = r.m_transformations;
90+
91+
m_containsCaptureAction = r.m_containsCaptureAction;
92+
m_containsMultiMatchAction = r.m_containsMultiMatchAction;
93+
m_containsStaticBlockAction = r.m_containsStaticBlockAction;
94+
m_isChained = r.m_isChained;
95+
96+
return *this;
97+
}
98+
4899
virtual bool evaluate(Transaction *transaction, std::shared_ptr<RuleMessage> ruleMessage) override;
49100

50101
virtual bool evaluate(Transaction *transaction) override;
@@ -111,7 +162,7 @@ class RuleWithActions : public Rule {
111162

112163
int64_t m_ruleId;
113164

114-
std::unique_ptr<RuleWithActions> m_chainedRuleChild;
165+
std::shared_ptr<RuleWithActions> m_chainedRuleChild;
115166
RuleWithActions *m_chainedRuleParent;
116167

117168
private:

headers/modsecurity/rules.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class Rules {
6363
return j;
6464
}
6565

66-
bool insert(std::shared_ptr<Rule> rule) {
66+
bool insert(const std::shared_ptr<Rule> &rule) {
6767
return insert(rule, nullptr, nullptr);
6868
}
6969

headers/modsecurity/transaction.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ class TransactionSecMarkerManagement {
309309
m_marker.reset();
310310
}
311311

312-
void addMarker(std::shared_ptr<std::string> name) {
312+
void addMarker(const std::shared_ptr<std::string> &name) {
313313
m_marker = name;
314314
}
315315

src/actions/tag.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "modsecurity/rule.h"
2525
#include "modsecurity/rule_message.h"
2626

27+
#ifdef MSC_DOCUMENTATION
2728
/**
2829
* Description: Assigns a tag (category) to a rule or a chain.
2930
*
@@ -44,7 +45,7 @@
4445
*
4546
*
4647
*/
47-
48+
#endif
4849

4950
namespace modsecurity {
5051
namespace actions {

src/actions/transformations/remove_whitespace.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,12 @@ std::string RemoveWhitespace::evaluate(const std::string &val,
4141
std::string value(val);
4242

4343
int64_t i = 0;
44+
char nonBreakingSpaces = 0xa0;
4445

4546
// loop through all the chars
4647
while (i < value.size()) {
4748
// remove whitespaces and non breaking spaces (NBSP)
48-
if (isspace(value[i]) || (value[i] == NBSP)) {
49+
if (isspace(value[i]) || (value[i] == nonBreakingSpaces)) {
4950
value.erase(i, 1);
5051
} else {
5152
/* if the space is not a whitespace char, increment counter

src/actions/transformations/trim.cc

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,25 @@ namespace transformations {
3232

3333

3434
std::string *Trim::ltrim(std::string *s) {
35-
s->erase(s->begin(), std::find_if(s->begin(), s->end(),
36-
std::not1(std::ptr_fun<int, int>(std::isspace))));
35+
s->erase(
36+
s->begin(),
37+
std::find_if(s->begin(), s->end(), [](unsigned char c) {
38+
return !std::isspace(c);
39+
})
40+
);
41+
3742
return s;
3843
}
3944

4045

4146
std::string *Trim::rtrim(std::string *s) {
42-
s->erase(std::find_if(s->rbegin(), s->rend(),
43-
std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s->end());
47+
s->erase(
48+
std::find_if(s->rbegin(), s->rend(), [](unsigned char c) {
49+
return !std::isspace(c);
50+
}).base(),
51+
s->end()
52+
);
53+
4454
return s;
4555
}
4656

src/actions/transformations/url_decode.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ UrlDecode::UrlDecode(const std::string &action)
3939

4040
std::string UrlDecode::evaluate(const std::string &value,
4141
Transaction *transaction) {
42-
unsigned char *val = NULL;
42+
unsigned char *val(NULL);
4343
int invalid_count = 0;
4444
int changed;
4545

0 commit comments

Comments
 (0)