Message ID | 00ae6b42-b561-6542-0421-4ab8542d5d75@huawei.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Jes Sorensen |
Headers | show |
Series | mdadm: fix memory leak and double free | expand |
On Thu, 9 Jun 2022 11:06:13 +0800 Wu Guanghao <wuguanghao3@huawei.com> wrote: > char *m is allocated by xstrdup but not free() before return, will cause > a memory leak. > > Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com> > --- > util.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/util.c b/util.c > index cc94f96e..46b04afb 100644 > --- a/util.c > +++ b/util.c > @@ -427,8 +427,11 @@ int parse_layout_faulty(char *layout) > int ln = strcspn(layout, "0123456789"); > char *m = xstrdup(layout); > int mode; > + > m[ln] = 0; > mode = map_name(faultylayout, m); > + free(m); > + > if (mode == UnSet) > return -1; > > -- > 2.27.0 Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
On 6/8/22 23:06, Wu Guanghao wrote: > char *m is allocated by xstrdup but not free() before return, will cause > a memory leak. > > Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com> > --- > util.c | 3 +++ > 1 file changed, 3 insertions(+) Hi Wu This no longer seems to apply, would you mind rebasing and resending the series? Thanks, Jes > diff --git a/util.c b/util.c > index cc94f96e..46b04afb 100644 > --- a/util.c > +++ b/util.c > @@ -427,8 +427,11 @@ int parse_layout_faulty(char *layout) > int ln = strcspn(layout, "0123456789"); > char *m = xstrdup(layout); > int mode; > + > m[ln] = 0; > mode = map_name(faultylayout, m); > + free(m); > + > if (mode == UnSet) > return -1; > > -- > 2.27.0
在 2022/7/29 5:15, Jes Sorensen 写道: > On 6/8/22 23:06, Wu Guanghao wrote: >> char *m is allocated by xstrdup but not free() before return, will cause >> a memory leak. >> >> Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com> >> --- >> util.c | 3 +++ >> 1 file changed, 3 insertions(+) > > Hi Wu > > This no longer seems to apply, would you mind rebasing and resending the > series? > > Thanks, > Jes OK, I will rebase and resend later. Wu > >> diff --git a/util.c b/util.c >> index cc94f96e..46b04afb 100644 >> --- a/util.c >> +++ b/util.c >> @@ -427,8 +427,11 @@ int parse_layout_faulty(char *layout) >> int ln = strcspn(layout, "0123456789"); >> char *m = xstrdup(layout); >> int mode; >> + >> m[ln] = 0; >> mode = map_name(faultylayout, m); >> + free(m); >> + >> if (mode == UnSet) >> return -1; >> >> -- >> 2.27.0 > > . >
diff --git a/util.c b/util.c index cc94f96e..46b04afb 100644 --- a/util.c +++ b/util.c @@ -427,8 +427,11 @@ int parse_layout_faulty(char *layout) int ln = strcspn(layout, "0123456789"); char *m = xstrdup(layout); int mode; + m[ln] = 0; mode = map_name(faultylayout, m); + free(m); + if (mode == UnSet) return -1;
char *m is allocated by xstrdup but not free() before return, will cause a memory leak. Signed-off-by: Wu Guanghao <wuguanghao3@huawei.com> --- util.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.27.0