diff --git a/server/core/gateway.c b/server/core/gateway.c index 18ceab7e5..16ea7c7c4 100644 --- a/server/core/gateway.c +++ b/server/core/gateway.c @@ -549,6 +549,7 @@ static bool resolve_maxscale_homedir( if (*p_home_dir != NULL) { log_context = strdup("Command-line argument"); + tmp = NULL; goto check_home_dir; } /*< @@ -640,7 +641,7 @@ check_home_dir: fprintf(stderr, "Using %s as MAXSCALE_HOME = %s\n", log_context, - tmp); + (tmp == NULL ? *p_home_dir : tmp)); } } } @@ -648,8 +649,11 @@ check_home_dir: { succp = false; } - free(tmp); - + if (tmp != NULL) + { + free(tmp); + } + if (log_context != NULL) { free(log_context); diff --git a/server/modules/filter/regexfilter.c b/server/modules/filter/regexfilter.c index 08962b0ce..898aae101 100644 --- a/server/modules/filter/regexfilter.c +++ b/server/modules/filter/regexfilter.c @@ -192,6 +192,7 @@ int i, cflags = REG_ICASE; if (my_instance->match == NULL || my_instance->replace == NULL) { + free(my_instance); return NULL; } @@ -386,6 +387,8 @@ regmatch_t match[10]; free(orig); return NULL; } + free(orig); + res_size = 2 * length; result = (char *)malloc(res_size); res_length = 0;