Fixed wrong type of char pointer in strtok_r calls in fwfilter.c
This commit is contained in:
@ -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;
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user