diff --git a/src/log.c b/src/log.c index ffd826332..55fa4d51a 100644 --- a/src/log.c +++ b/src/log.c @@ -799,6 +799,7 @@ int smp_log_range_cmp(const void *a, const void *b) */ int parse_logsrv(char **args, struct list *logsrvs, int do_del, char **err) { + struct smp_log_range *smp_rgs = NULL; struct sockaddr_storage *sk; struct logsrv *logsrv = NULL; int port1, port2; @@ -905,7 +906,6 @@ int parse_logsrv(char **args, struct list *logsrvs, int do_del, char **err) if (strcmp(args[cur_arg], "sample") == 0) { unsigned low, high; char *p, *beg, *end, *smp_sz_str; - struct smp_log_range *smp_rgs = NULL; size_t smp_rgs_sz = 0, smp_sz = 0, new_smp_sz; p = args[cur_arg+1]; @@ -1038,6 +1038,8 @@ int parse_logsrv(char **args, struct list *logsrvs, int do_del, char **err) return 1; error: + free(smp_rgs); + free(logsrv->ring_name); free(logsrv); return 0; }