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