From e74dfd1aa9a580239f38ceab8535950a95f6ef9e Mon Sep 17 00:00:00 2001 From: Heng Li Date: Wed, 26 May 2021 12:32:04 -0400 Subject: [PATCH] r1054: fixed a memory leak --- lchain.c | 10 ++++++++-- main.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lchain.c b/lchain.c index fb84b94..ac60ddb 100644 --- a/lchain.c +++ b/lchain.c @@ -138,7 +138,10 @@ mm128_t *mg_lchain_dp(int max_dist_x, int max_dist_y, int bw, int max_skip, int uint64_t *u; if (_u) *_u = 0, *n_u_ = 0; - if (n == 0 || a == 0) return 0; + if (n == 0 || a == 0) { + kfree(km, a); + return 0; + } if (max_dist_x < bw) max_dist_x = bw; if (max_dist_y < bw && !is_cdna) max_dist_y = bw; KMALLOC(km, p, n); @@ -239,7 +242,10 @@ mm128_t *mg_lchain_rmq(int max_dist, int max_dist_inner, int bw, int max_chn_ski kmp_rmq_t *mp; if (_u) *_u = 0, *n_u_ = 0; - if (n == 0 || a == 0) return 0; + if (n == 0 || a == 0) { + kfree(km, a); + return 0; + } if (max_dist < bw) max_dist = bw; if (max_dist_inner <= 0 || max_dist_inner >= max_dist) max_dist_inner = 0; KMALLOC(km, p, n); diff --git a/main.c b/main.c index 209fb32..79a5131 100644 --- a/main.c +++ b/main.c @@ -7,7 +7,7 @@ #include "mmpriv.h" #include "ketopt.h" -#define MM_VERSION "2.18-r1052-dirty" +#define MM_VERSION "2.18-r1054-dirty" #ifdef __linux__ #include