Fixes to Coverity defects 87308, 87307, 87306, 87074, 87068.

This commit is contained in:
Markus Makela 2015-02-14 07:54:17 +02:00
parent 2477043d11
commit 3bad5dc814
3 changed files with 24 additions and 8 deletions

View File

@ -1572,7 +1572,7 @@ char* skygw_get_qtype_str(
skygw_query_op_t query_classifier_get_operation(GWBUF* querybuf) skygw_query_op_t query_classifier_get_operation(GWBUF* querybuf)
{ {
LEX* lex = get_lex(querybuf); LEX* lex = get_lex(querybuf);
skygw_query_op_t operation; skygw_query_op_t operation = QUERY_OP_UNDEFINED;
if(lex){ if(lex){
switch(lex->sql_command){ switch(lex->sql_command){
case SQLCOM_SELECT: case SQLCOM_SELECT:

View File

@ -678,12 +678,14 @@ void *key, *value;
if (!(*keywrite)(fd, key)) if (!(*keywrite)(fd, key))
{ {
close(fd); close(fd);
hashtable_iterator_free(iter);
return -1; return -1;
} }
if ((value = hashtable_fetch(table, key)) == NULL || if ((value = hashtable_fetch(table, key)) == NULL ||
(*valuewrite)(fd, value) == 0) (*valuewrite)(fd, value) == 0)
{ {
close(fd); close(fd);
hashtable_iterator_free(iter);
return -1; return -1;
} }
rval++; rval++;
@ -691,10 +693,13 @@ void *key, *value;
} }
/* Now go back and write the count of entries */ /* Now go back and write the count of entries */
lseek(fd, 7L, SEEK_SET); if(lseek(fd, 7L, SEEK_SET) != -1)
{
write(fd, &rval, sizeof(rval)); write(fd, &rval, sizeof(rval));
}
close(fd); close(fd);
hashtable_iterator_free(iter);
return rval; return rval;
} }

View File

@ -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; char **saveptr = NULL;
RULELIST* rulelist = NULL; RULELIST* rulelist = NULL;
userptr = strstr(rule,"users "); userptr = strstr(rule,"users ");
@ -656,7 +656,7 @@ void link_rules(char* rule, FW_INSTANCE* instance)
*ruleptr++ = '\0'; *ruleptr++ = '\0';
tok = strtok_r(modeptr," ",saveptr); tok = strtok_r(modeptr," ",saveptr);
if(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;
@ -743,6 +743,12 @@ void link_rules(char* rule, FW_INSTANCE* instance)
} }
while(rulelist)
{
RULELIST *tmp = rulelist;
rulelist = rulelist->next;
free(tmp);
}
} }
@ -756,7 +762,7 @@ 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; 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;
@ -800,6 +806,11 @@ void parse_rule(char* rule, FW_INSTANCE* instance)
add_users(rule, instance); add_users(rule, instance);
goto retblock; goto retblock;
} }
else
{
skygw_log_write(LOGFILE_ERROR,"Error : Unknown token in rule file: %s",tok);
goto retblock;
}
tok = strtok_r(NULL, " ,",saveptr); tok = strtok_r(NULL, " ,",saveptr);