Fixed wrong type of char pointer in strtok_r calls in fwfilter.c

This commit is contained in:
Markus Makela
2015-02-14 17:38:05 +02:00
parent 3bad5dc814
commit cb35472133
2 changed files with 25 additions and 24 deletions

View File

@ -639,7 +639,7 @@ void link_rules(char* rule, FW_INSTANCE* instance)
bool match_any;
char *tok, *ruleptr, *userptr, *modeptr;
char **saveptr = NULL;
char *saveptr = NULL;
RULELIST* rulelist = NULL;
userptr = strstr(rule,"users ");
@ -655,9 +655,9 @@ void link_rules(char* rule, FW_INSTANCE* instance)
*modeptr++ = '\0';
*ruleptr++ = '\0';
tok = strtok_r(modeptr," ",saveptr);
tok = strtok_r(modeptr," ",&saveptr);
if(tok && strcmp(tok,"match") == 0){
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
if(strcmp(tok,"any") == 0){
match_any = true;
}else if(strcmp(tok,"all") == 0){
@ -668,8 +668,8 @@ void link_rules(char* rule, FW_INSTANCE* instance)
}
}
tok = strtok_r(ruleptr," ",saveptr);
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(ruleptr," ",&saveptr);
tok = strtok_r(NULL," ",&saveptr);
while(tok)
{
@ -683,7 +683,7 @@ void link_rules(char* rule, FW_INSTANCE* instance)
rulelist = tmp_rl;
}
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
}
/**
@ -691,8 +691,8 @@ void link_rules(char* rule, FW_INSTANCE* instance)
*/
*(ruleptr) = '\0';
userptr = strtok_r(rule," ",saveptr);
userptr = strtok_r(NULL," ",saveptr);
userptr = strtok_r(rule," ",&saveptr);
userptr = strtok_r(NULL," ",&saveptr);
while(userptr)
{
@ -739,7 +739,7 @@ void link_rules(char* rule, FW_INSTANCE* instance)
(void *)userptr,
(void *)user);
userptr = strtok_r(NULL," ",saveptr);
userptr = strtok_r(NULL," ",&saveptr);
}
@ -762,8 +762,8 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
ss_dassert(rule != NULL && instance != NULL);
char *rulecpy = strdup(rule);
char **saveptr = NULL;
char *tok = strtok_r(rulecpy," ,",saveptr);
char *saveptr = NULL;
char *tok = strtok_r(rulecpy," ,",&saveptr);
bool allow,deny,mode;
RULE* ruledef = NULL;
@ -771,7 +771,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
if(strcmp("rule",tok) == 0){ /**Define a new rule*/
tok = strtok_r(NULL," ,",saveptr);
tok = strtok_r(NULL," ,",&saveptr);
if(tok == NULL) goto retblock;
@ -812,7 +812,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
goto retblock;
}
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
if((allow = (strcmp(tok,"allow") == 0)) ||
@ -821,7 +821,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
mode = allow ? true:false;
ruledef->allow = mode;
ruledef->type = RT_PERMISSION;
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
while(tok){
@ -833,13 +833,13 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
{
STRLINK *tail = NULL,*current;
ruledef->type = RT_COLUMN;
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
while(tok && strcmp(tok,"at_times") != 0){
current = malloc(sizeof(STRLINK));
current->value = strdup(tok);
current->next = tail;
tail = current;
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
}
ruledef->data = (void*)tail;
@ -849,7 +849,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
else if(strcmp(tok,"at_times") == 0)
{
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
TIMERANGE *tr = NULL;
while(tok){
TIMERANGE *tmp = parse_time(tok,instance);
@ -859,7 +859,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
}
tmp->next = tr;
tr = tmp;
tok = strtok_r(NULL, " ,",saveptr);
tok = strtok_r(NULL, " ,",&saveptr);
}
ruledef->active = tr;
}
@ -868,7 +868,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
bool escaped = false;
regex_t *re;
char* start, *str;
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
char delim = '\'';
while(*tok == '\'' || *tok == '"'){
delim = *tok;
@ -927,20 +927,20 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
qs->id = ++instance->idgen;
spinlock_release(instance->lock);
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
if(tok == NULL){
free(qs);
goto retblock;
}
qs->limit = atoi(tok);
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
if(tok == NULL){
free(qs);
goto retblock;
}
qs->period = atof(tok);
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
if(tok == NULL){
free(qs);
goto retblock;
@ -956,7 +956,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
}
else if(strcmp(tok,"on_operations") == 0)
{
tok = strtok_r(NULL," ",saveptr);
tok = strtok_r(NULL," ",&saveptr);
if(!parse_querytypes(tok,ruledef)){
skygw_log_write(LOGFILE_ERROR,
"fwfilter: Invalid query type"
@ -964,7 +964,7 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
,tok);
}
}
tok = strtok_r(NULL," ,",saveptr);
tok = strtok_r(NULL," ,",&saveptr);
}
goto retblock;

View File

@ -11,6 +11,7 @@ add_executable(harness harness_util.c harness_common.c ${CORE})
target_link_libraries(harness_ui fullcore log_manager utils)
target_link_libraries(harness fullcore)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${ERRMSG} ${CMAKE_CURRENT_BINARY_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/harness.cnf ${CMAKE_CURRENT_BINARY_DIR})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testdriver.sh ${CMAKE_CURRENT_BINARY_DIR}/testdriver.sh @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hintfilter/hint_testing.cnf ${CMAKE_CURRENT_BINARY_DIR}/hintfilter/hint_testing.cnf)