From 264944ff23215ac6b545d313fdab034b6338929e Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Wed, 11 Nov 2015 17:10:16 +0200 Subject: [PATCH] Service users are set to NULL after they are freed. --- server/core/service.c | 5 ++++- server/modules/routing/binlog/blr.c | 2 ++ server/modules/routing/maxinfo/maxinfo.c | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/server/core/service.c b/server/core/service.c index b77043888..826c61bee 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -348,6 +348,7 @@ GWPROTOCOL *funcs; { users_free(service->users); dcb_close(port->listener); + service->users = NULL; port->listener = NULL; LOGIF(LE, (skygw_log_write_flush( LOGFILE_ERROR, @@ -382,8 +383,9 @@ GWPROTOCOL *funcs; service->name))); users_free(service->users); - dcb_close(port->listener); + dcb_close(port->listener); port->listener = NULL; + service->users = NULL; goto retblock; } } @@ -396,6 +398,7 @@ GWPROTOCOL *funcs; port->protocol, service->name))); users_free(service->users); + service->users = NULL; dcb_close(port->listener); port->listener = NULL; } diff --git a/server/modules/routing/binlog/blr.c b/server/modules/routing/binlog/blr.c index ee55505ad..013e687f7 100644 --- a/server/modules/routing/binlog/blr.c +++ b/server/modules/routing/binlog/blr.c @@ -579,6 +579,7 @@ char task_name[BLRM_TASK_NAME_LEN+1] = ""; inst->service->name))); if (service->users) { users_free(service->users); + service->users = NULL; } free(inst); @@ -657,6 +658,7 @@ char task_name[BLRM_TASK_NAME_LEN+1] = ""; if (service->users) { users_free(service->users); + service->users = NULL; } if (service->dbref && service->dbref->server) { diff --git a/server/modules/routing/maxinfo/maxinfo.c b/server/modules/routing/maxinfo/maxinfo.c index 0efe22b63..96085a6b4 100644 --- a/server/modules/routing/maxinfo/maxinfo.c +++ b/server/modules/routing/maxinfo/maxinfo.c @@ -786,7 +786,7 @@ maxinfo_add_mysql_user(SERVICE *service) { "maxinfo: create hex_sha1_sha1_password failed for service user %s", service_user))); users_free(service->users); - + service->users = NULL; return 1; }