From ea039dd01aa137f929b5d512d26f880f9867aae4 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Sat, 7 Mar 2015 06:00:01 +0200 Subject: [PATCH] Fixed to Coverity defects and a fix to tee filter not compiling with SS_DEBUG flag. --- server/core/resultset.c | 13 ++++----- server/core/test/testservice.c | 4 ++- server/modules/filter/CMakeLists.txt | 6 ++--- server/modules/filter/fwfilter.c | 2 ++ .../filter/{lagfilter.c => slavelag.c} | 27 ++++++++++--------- server/modules/filter/tee.c | 8 +----- server/modules/routing/binlog/blr_file.c | 8 +++--- server/modules/routing/binlog/blr_master.c | 4 +-- server/modules/routing/maxinfo/maxinfo.c | 4 ++- .../modules/routing/maxinfo/maxinfo_error.c | 5 ++-- server/modules/routing/maxinfo/maxinfo_exec.c | 2 +- .../modules/routing/maxinfo/maxinfo_parse.c | 6 +++++ 12 files changed, 50 insertions(+), 39 deletions(-) rename server/modules/filter/{lagfilter.c => slavelag.c} (92%) diff --git a/server/core/resultset.c b/server/core/resultset.c index cca4e3c5a..7f9d88bbf 100644 --- a/server/core/resultset.c +++ b/server/core/resultset.c @@ -73,18 +73,19 @@ resultset_free(RESULTSET *resultset) { RESULT_COLUMN *col; - if (resultset) - return; - col = resultset->column; - while (col) + if (resultset != NULL) { - RESULT_COLUMN *next; + col = resultset->column; + while (col) + { + RESULT_COLUMN *next; next = col->next; resultset_column_free(col); col = next; + } + free(resultset); } - free(resultset); } /** diff --git a/server/core/test/testservice.c b/server/core/test/testservice.c index 7474925d4..ef2560481 100644 --- a/server/core/test/testservice.c +++ b/server/core/test/testservice.c @@ -42,6 +42,7 @@ static bool success = false; int hup(DCB* dcb) { success = true; + return 1; } /** @@ -108,7 +109,8 @@ hkinit(); skygw_log_sync_all(); ss_info_dassert(0 != result, "Stop should succeed"); - dcb = dcb_alloc(DCB_ROLE_REQUEST_HANDLER); + if((dcb = dcb_alloc(DCB_ROLE_REQUEST_HANDLER)) == NULL) + return 1; ss_info_dassert(dcb != NULL, "DCB allocation failed"); session = session_alloc(service,dcb); diff --git a/server/modules/filter/CMakeLists.txt b/server/modules/filter/CMakeLists.txt index 98d855d54..84629559b 100644 --- a/server/modules/filter/CMakeLists.txt +++ b/server/modules/filter/CMakeLists.txt @@ -34,9 +34,9 @@ add_library(namedserverfilter SHARED namedserverfilter.c) target_link_libraries(namedserverfilter log_manager utils) install(TARGETS namedserverfilter DESTINATION modules) -add_library(lagfilter SHARED lagfilter.c) -target_link_libraries(lagfilter log_manager utils query_classifier) -install(TARGETS lagfilter DESTINATION modules) +add_library(slavelag SHARED slavelag.c) +target_link_libraries(slavelag log_manager utils query_classifier) +install(TARGETS slavelag DESTINATION modules) add_subdirectory(hint) diff --git a/server/modules/filter/fwfilter.c b/server/modules/filter/fwfilter.c index d33cacb2e..63d07b5a9 100644 --- a/server/modules/filter/fwfilter.c +++ b/server/modules/filter/fwfilter.c @@ -1558,6 +1558,7 @@ bool check_match_any(FW_INSTANCE* my_instance, FW_SESSION* my_session, GWBUF *qu } qlen = gw_mysql_get_byte3(memptr); + qlen = qlen < 0xffffff ? qlen : 0xffffff; fullquery = malloc((qlen) * sizeof(char)); memcpy(fullquery,memptr + 5,qlen - 1); memset(fullquery + qlen - 1,0,1); @@ -1612,6 +1613,7 @@ bool check_match_all(FW_INSTANCE* my_instance, FW_SESSION* my_session, GWBUF *qu } qlen = gw_mysql_get_byte3(memptr); + qlen = qlen < 0xffffff ? qlen : 0xffffff; fullquery = malloc((qlen) * sizeof(char)); memcpy(fullquery,memptr + 5,qlen - 1); memset(fullquery + qlen - 1,0,1); diff --git a/server/modules/filter/lagfilter.c b/server/modules/filter/slavelag.c similarity index 92% rename from server/modules/filter/lagfilter.c rename to server/modules/filter/slavelag.c index aff236850..c12d7a2a7 100644 --- a/server/modules/filter/lagfilter.c +++ b/server/modules/filter/slavelag.c @@ -32,7 +32,7 @@ extern size_t log_ses_count[]; extern __thread log_info_t tls_log_info; /** - * @file lagfilter.c - a very simple filter designed to send queries to the + * @file slavelag.c - a very simple filter designed to send queries to the * master server after data modification has occurred. This is done to prevent * replication lag affecting the outcome of a select query. * @@ -42,8 +42,11 @@ extern __thread log_info_t tls_log_info; * is executed: * * count= Queries to route to master after data modification. - * time=