diff --git a/server/core/monitor.c b/server/core/monitor.c index 30fdc756c..ae9a64794 100644 --- a/server/core/monitor.c +++ b/server/core/monitor.c @@ -73,7 +73,6 @@ MONITOR *mon; LOGFILE_ERROR, "Error : Unable to load monitor module '%s'.", name))); - free(mon->name); free(mon); return NULL; } diff --git a/server/modules/monitor/monitor_common.c b/server/modules/monitor/monitor_common.c index fb59eadbd..e4b8e7dac 100644 --- a/server/modules/monitor/monitor_common.c +++ b/server/modules/monitor/monitor_common.c @@ -229,8 +229,9 @@ void mon_append_node_names(MONITOR_SERVERS* start,char* str, int len) { MONITOR_SERVERS* ptr = start; bool first = true; + int slen = strlen(str); - while(ptr) + while(ptr && slen < len) { if(!first) { @@ -239,6 +240,7 @@ void mon_append_node_names(MONITOR_SERVERS* start,char* str, int len) first = false; strncat(str,ptr->server->unique_name,len); ptr = ptr->next; + slen = strlen(str); } } diff --git a/server/modules/monitor/ndbclustermon.c b/server/modules/monitor/ndbclustermon.c index cceaacd58..c8790be59 100644 --- a/server/modules/monitor/ndbclustermon.c +++ b/server/modules/monitor/ndbclustermon.c @@ -123,6 +123,8 @@ startMonitor(void *arg,void* opt) return NULL; handle->shutdown = 0; handle->id = MONITOR_DEFAULT_ID; + handle->script = NULL; + handle->master = NULL; memset(handle->events,false,sizeof(handle->events)); spinlock_init(&handle->lock); }