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=