]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Examine.c
Avoid memory leak
[thirdparty/mdadm.git] / Examine.c
index ffca9ca5f9d615721b68db3a9af0a1d2eda57788..5d71e537edd3dcd33e035951c34aeb184a22ba86 100644 (file)
--- a/Examine.c
+++ b/Examine.c
@@ -87,6 +87,7 @@ int Examine(struct mddev_dev *devlist, int brief, int export, int scan,
                                st = guess_super(fd);
                        if (st) {
                                err = 1;
+                               st->ignore_hw_compat = 1;
                                if (!container)
                                        err = st->ss->load_super(st, fd,
                                                                 (brief||scan) ? NULL
@@ -98,6 +99,7 @@ int Examine(struct mddev_dev *devlist, int brief, int export, int scan,
                                        if (!err)
                                                have_container = 1;
                                }
+                               st->ignore_hw_compat = 0;
                        } else {
                                if (!brief) {
                                        fprintf(stderr, Name ": No md superblock detected on %s.\n", devlist->devname);
@@ -145,6 +147,7 @@ int Examine(struct mddev_dev *devlist, int brief, int export, int scan,
                } else if (export) {
                        if (st->ss->export_examine_super)
                                st->ss->export_examine_super(st);
+                       st->ss->free_super(st);
                } else {
                        printf("%s:\n",devlist->devname);
                        st->ss->examine_super(st, homehost);