From 03503a8f9bfc1a6e2da8ce5062fc59f9b5409f81 Mon Sep 17 00:00:00 2001 From: counterpoint Date: Fri, 26 Jun 2015 17:31:40 +0100 Subject: [PATCH 1/2] Fix a number of relatively simple bugs shown by Coverity. --- log_manager/log_manager.cc | 4 +-- server/core/config.c | 2 +- .../modules/routing/maxinfo/maxinfo_parse.c | 4 --- .../routing/readwritesplit/readwritesplit.c | 27 ++++++++++--------- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/log_manager/log_manager.cc b/log_manager/log_manager.cc index b31ae6112..a87157be7 100644 --- a/log_manager/log_manager.cc +++ b/log_manager/log_manager.cc @@ -1394,7 +1394,7 @@ int skygw_log_write_flush( /** * Write log string to buffer and add to file write list. */ - for(i = LOGFILE_FIRST;i<=LOGFILE_LAST;i <<=1) + for (i = LOGFILE_FIRST; irses_lock)); + myrses = *rses; + ss_dassert(SPINLOCK_IS_LOCKED(&myrses->rses_lock)); ses = backend_dcb->session; 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 = get_bref_from_dcb(rses, backend_dcb)) == NULL) + if ((bref = get_bref_from_dcb(myrses, backend_dcb)) == NULL) { succp = true; goto return_succp; @@ -4825,25 +4828,25 @@ static bool handle_error_new_connection( (void *)bref); router_nservers = router_get_servercount(inst); - max_nslaves = rses_get_max_slavecount(rses, router_nservers); - max_slave_rlag = rses_get_max_replication_lag(rses); + max_nslaves = rses_get_max_slavecount(myrses, router_nservers); + max_slave_rlag = rses_get_max_replication_lag(myrses); /** * Try to get replacement slave or at least the minimum * number of slave connections for router session. */ 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 { succp = select_connect_backend_servers( - &rses->rses_master_ref, - rses->rses_backend_ref, + &myrses->rses_master_ref, + myrses->rses_backend_ref, router_nservers, max_nslaves, max_slave_rlag, - rses->rses_config.rw_slave_select_criteria, + myrses->rses_config.rw_slave_select_criteria, ses, inst); } From c9606e1071fb6f21413002d7fa5d7ff78e810b46 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Sat, 27 Jun 2015 08:28:37 +0300 Subject: [PATCH 2/2] Fixed build failures due to mismatching function prototypes. --- server/modules/routing/readwritesplit/readwritesplit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/modules/routing/readwritesplit/readwritesplit.c b/server/modules/routing/readwritesplit/readwritesplit.c index 45ce0ab5f..70554c544 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.c +++ b/server/modules/routing/readwritesplit/readwritesplit.c @@ -287,7 +287,7 @@ static sescmd_cursor_t* backend_ref_get_sescmd_cursor (backend_ref_t* bref); static int router_handle_state_switch(DCB* dcb, DCB_REASON reason, void* data); static bool handle_error_new_connection( ROUTER_INSTANCE* inst, - ROUTER_CLIENT_SES* rses, + ROUTER_CLIENT_SES** rses, DCB* backend_dcb, GWBUF* errmsg); static void handle_error_reply_client(