@@ -36,9 +36,8 @@ void print_help(const char *name) {
36
36
37
37
38
38
int main (int argc, char **argv) {
39
- modsecurity::RulesSet *rules ;
39
+ auto rules = std::make_unique< modsecurity::RulesSet>() ;
40
40
char **args = argv;
41
- rules = new modsecurity::RulesSet ();
42
41
int ret = 0 ;
43
42
44
43
args++;
@@ -50,41 +49,26 @@ int main(int argc, char **argv) {
50
49
51
50
while (*args != NULL ) {
52
51
struct stat buffer;
53
- std::string argFull (" " );
54
- const char *arg = *args;
52
+ std::string arg = *args;
55
53
std::string err;
56
54
int r;
57
55
58
- if (argFull.empty () == false ) {
59
- if (arg[strlen (arg)-1 ] == ' \" ' ) {
60
- argFull.append (arg, strlen (arg)-1 );
61
- goto next;
62
- } else {
63
- argFull.append (arg);
64
- goto next;
65
- }
66
- }
67
-
68
- if (arg[0 ] == ' \" ' && argFull.empty () == true ) {
69
- if (arg[strlen (arg)-1 ] == ' \" ' ) {
70
- argFull.append (arg+1 , strlen (arg) - 2 );
71
- } else {
72
- argFull.append (arg+1 );
73
- goto next;
74
- }
75
- }
56
+ // strip arg from leading and trailing '"' chars
57
+ arg.erase (arg.find_last_not_of (' \" ' )+1 );
58
+ arg.erase (0 , arg.find_first_not_of (' \" ' ));
76
59
77
- if (argFull .empty () == false ) {
78
- arg = strdup (argFull. c_str ()) ;
79
- argFull. clear () ;
60
+ if (arg .empty () == true ) {
61
+ args++ ;
62
+ continue ;
80
63
}
81
64
82
65
std::cout << " : " << arg << " -- " ;
83
- if (stat (arg, &buffer) == 0 ) {
84
- r = rules->loadFromUri (arg);
66
+ if (stat (arg. c_str () , &buffer) == 0 ) {
67
+ r = rules->loadFromUri (arg. c_str () );
85
68
} else {
86
- r = rules->load (arg);
69
+ r = rules->load (arg. c_str () );
87
70
}
71
+
88
72
if (r < 0 ) {
89
73
err.assign (rules->m_parserError .str ());
90
74
rules->m_parserError .str (" " );
@@ -95,12 +79,10 @@ int main(int argc, char **argv) {
95
79
if (err.empty () == false ) {
96
80
std::cerr << " " << err << std::endl;
97
81
}
98
- next:
82
+
99
83
args++;
100
84
}
101
85
102
- delete rules;
103
-
104
86
if (ret < 0 ) {
105
87
std::cout << " Test failed." << std::endl;
106
88
} else {
0 commit comments