From 74ae3d9ff3edef1d7d5645d1a2070f5c1805180a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Mon, 27 Nov 2017 19:09:34 +0200 Subject: [PATCH] MXS-1539: Actually assign the allocated member pointer The memory for the rate limit struct was allocated but it was not assigned for the service. Also corrected a false debug assertion in service_refresh_users. --- server/core/service.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/core/service.cc b/server/core/service.cc index e9cee34af..399eb58dc 100644 --- a/server/core/service.cc +++ b/server/core/service.cc @@ -103,8 +103,8 @@ SERVICE* service_alloc(const char *name, const char *router) char *my_name = MXS_STRDUP(name); char *my_router = MXS_STRDUP(router); SERVICE *service = (SERVICE *)MXS_CALLOC(1, sizeof(*service)); - SERVICE_REFRESH_RATE* rate_limit = (SERVICE_REFRESH_RATE*)MXS_CALLOC(config_threadcount(), - sizeof(*rate_limit)); + SERVICE_REFRESH_RATE* rate_limits = (SERVICE_REFRESH_RATE*)MXS_CALLOC(config_threadcount(), + sizeof(*rate_limits)); if (!my_name || !my_router || !service) { MXS_FREE(my_name); @@ -151,6 +151,7 @@ SERVICE* service_alloc(const char *name, const char *router) service->routerOptions = NULL; service->log_auth_warnings = true; service->strip_db_esc = true; + service->rate_limits = rate_limits; if (service->name == NULL || service->routerModule == NULL) { if (service->name) @@ -1608,7 +1609,7 @@ int service_refresh_users(SERVICE *service) { int ret = 1; int self = mxs_worker_get_current_id(); - ss_dassert(self); + ss_dassert(self >= 0); time_t now = time(NULL); /* Check if refresh rate limit has been exceeded */