]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Grow: fix possible memory leak.
authorBlazej Kucman <blazej.kucman@intel.com>
Tue, 20 Dec 2022 11:07:51 +0000 (12:07 +0100)
committerJes Sorensen <jes@trained-monkey.org>
Wed, 28 Dec 2022 14:59:06 +0000 (09:59 -0500)
Signed-off-by: Blazej Kucman <blazej.kucman@intel.com>
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
Grow.c

diff --git a/Grow.c b/Grow.c
index e362403aa81e0e46c26273d9ae26dde1ad1d54f5..b73ec2aebb9f257548b3ebe2aacb5d3d3e080351 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -432,6 +432,7 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
                        if (((disk.state & (1 << MD_DISK_WRITEMOSTLY)) == 0) &&
                           (strcmp(s->bitmap_file, "clustered") == 0)) {
                                pr_err("%s disks marked write-mostly are not supported with clustered bitmap\n",devname);
+                               free(mdi);
                                return 1;
                        }
                        fd2 = dev_open(dv, O_RDWR);
@@ -453,8 +454,10 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
                                pr_err("failed to load super-block.\n");
                        }
                        close(fd2);
-                       if (rv)
+                       if (rv) {
+                               free(mdi);
                                return 1;
+                       }
                }
                if (offset_setable) {
                        st->ss->getinfo_super(st, mdi, NULL);