Fix a number of relatively simple bugs shown by Coverity.
This commit is contained in:
@ -1394,7 +1394,7 @@ int skygw_log_write_flush(
|
|||||||
/**
|
/**
|
||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
for(i = LOGFILE_FIRST;i<=LOGFILE_LAST;i <<=1)
|
for (i = LOGFILE_FIRST; i<LOGFILE_LAST ;i <<=1)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* If particular log is disabled in general and it is not enabled for
|
* If particular log is disabled in general and it is not enabled for
|
||||||
@ -1457,7 +1457,7 @@ int skygw_log_write(
|
|||||||
* Write log string to buffer and add to file write list.
|
* Write log string to buffer and add to file write list.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for(i = LOGFILE_FIRST;i<=LOGFILE_LAST;i <<=1)
|
for (i = LOGFILE_FIRST; i<LOGFILE_LAST; i <<=1)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* If particular log is disabled in general and it is not enabled for
|
* If particular log is disabled in general and it is not enabled for
|
||||||
|
@ -932,7 +932,7 @@ hashtable_memory_fns(monitorhash,strdup,NULL,free,NULL);
|
|||||||
/* if id is not set, do it now */
|
/* if id is not set, do it now */
|
||||||
if (gateway.id == 0) {
|
if (gateway.id == 0) {
|
||||||
setipaddress(&serv_addr.sin_addr, (address == NULL) ? "0.0.0.0" : address);
|
setipaddress(&serv_addr.sin_addr, (address == NULL) ? "0.0.0.0" : address);
|
||||||
gateway.id = (unsigned long) (serv_addr.sin_addr.s_addr + port != NULL ? atoi(port) : 0 + getpid());
|
gateway.id = (unsigned long) (serv_addr.sin_addr.s_addr + (port != NULL ? atoi(port) : 0 + getpid()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (service && socket && protocol) {
|
if (service && socket && protocol) {
|
||||||
|
@ -113,14 +113,10 @@ MAXINFO_TREE *col, *table;
|
|||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
*parse_error = PARSE_SYNTAX_ERROR;
|
*parse_error = PARSE_SYNTAX_ERROR;
|
||||||
if (tree)
|
|
||||||
free_tree(tree);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*parse_error = PARSE_SYNTAX_ERROR;
|
*parse_error = PARSE_SYNTAX_ERROR;
|
||||||
if (tree)
|
|
||||||
free_tree(tree);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4687,14 +4687,15 @@ static void handleError (
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* This is called in hope of getting replacement for
|
* This is called in hope of getting replacement for
|
||||||
* failed slave(s).
|
* failed slave(s). This call may free rses.
|
||||||
*/
|
*/
|
||||||
*succp = handle_error_new_connection(inst,
|
*succp = handle_error_new_connection(inst,
|
||||||
rses,
|
&rses,
|
||||||
backend_dcb,
|
backend_dcb,
|
||||||
errmsgbuf);
|
errmsgbuf);
|
||||||
}
|
}
|
||||||
rses_end_locked_router_action(rses);
|
/* Free the lock if rses still exists */
|
||||||
|
if (rses) rses_end_locked_router_action(rses);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4763,10 +4764,11 @@ static void handle_error_reply_client(
|
|||||||
*/
|
*/
|
||||||
static bool handle_error_new_connection(
|
static bool handle_error_new_connection(
|
||||||
ROUTER_INSTANCE* inst,
|
ROUTER_INSTANCE* inst,
|
||||||
ROUTER_CLIENT_SES* rses,
|
ROUTER_CLIENT_SES** rses,
|
||||||
DCB* backend_dcb,
|
DCB* backend_dcb,
|
||||||
GWBUF* errmsg)
|
GWBUF* errmsg)
|
||||||
{
|
{
|
||||||
|
ROUTER_CLIENT_SES* myrses;
|
||||||
SESSION* ses;
|
SESSION* ses;
|
||||||
int router_nservers;
|
int router_nservers;
|
||||||
int max_nslaves;
|
int max_nslaves;
|
||||||
@ -4774,7 +4776,8 @@ static bool handle_error_new_connection(
|
|||||||
backend_ref_t* bref;
|
backend_ref_t* bref;
|
||||||
bool succp;
|
bool succp;
|
||||||
|
|
||||||
ss_dassert(SPINLOCK_IS_LOCKED(&rses->rses_lock));
|
myrses = *rses;
|
||||||
|
ss_dassert(SPINLOCK_IS_LOCKED(&myrses->rses_lock));
|
||||||
|
|
||||||
ses = backend_dcb->session;
|
ses = backend_dcb->session;
|
||||||
CHK_SESSION(ses);
|
CHK_SESSION(ses);
|
||||||
@ -4782,7 +4785,7 @@ static bool handle_error_new_connection(
|
|||||||
/**
|
/**
|
||||||
* If bref == NULL it has been replaced already with another one.
|
* If bref == NULL it has been replaced already with another one.
|
||||||
*/
|
*/
|
||||||
if ((bref = get_bref_from_dcb(rses, backend_dcb)) == NULL)
|
if ((bref = get_bref_from_dcb(myrses, backend_dcb)) == NULL)
|
||||||
{
|
{
|
||||||
succp = true;
|
succp = true;
|
||||||
goto return_succp;
|
goto return_succp;
|
||||||
@ -4825,25 +4828,25 @@ static bool handle_error_new_connection(
|
|||||||
(void *)bref);
|
(void *)bref);
|
||||||
|
|
||||||
router_nservers = router_get_servercount(inst);
|
router_nservers = router_get_servercount(inst);
|
||||||
max_nslaves = rses_get_max_slavecount(rses, router_nservers);
|
max_nslaves = rses_get_max_slavecount(myrses, router_nservers);
|
||||||
max_slave_rlag = rses_get_max_replication_lag(rses);
|
max_slave_rlag = rses_get_max_replication_lag(myrses);
|
||||||
/**
|
/**
|
||||||
* Try to get replacement slave or at least the minimum
|
* Try to get replacement slave or at least the minimum
|
||||||
* number of slave connections for router session.
|
* number of slave connections for router session.
|
||||||
*/
|
*/
|
||||||
if(inst->rwsplit_config.disable_slave_recovery)
|
if(inst->rwsplit_config.disable_slave_recovery)
|
||||||
{
|
{
|
||||||
succp = have_enough_servers(&rses,1,router_nservers,inst) ? true : false;
|
succp = have_enough_servers(&myrses,1,router_nservers,inst) ? true : false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
succp = select_connect_backend_servers(
|
succp = select_connect_backend_servers(
|
||||||
&rses->rses_master_ref,
|
&myrses->rses_master_ref,
|
||||||
rses->rses_backend_ref,
|
myrses->rses_backend_ref,
|
||||||
router_nservers,
|
router_nservers,
|
||||||
max_nslaves,
|
max_nslaves,
|
||||||
max_slave_rlag,
|
max_slave_rlag,
|
||||||
rses->rses_config.rw_slave_select_criteria,
|
myrses->rses_config.rw_slave_select_criteria,
|
||||||
ses,
|
ses,
|
||||||
inst);
|
inst);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user