]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Fix --monitor --scan with relative ARRAY devnames
authorQRPp <awesome.walrus+github@gmail.com>
Mon, 1 Sep 2025 20:33:57 +0000 (21:33 +0100)
committerXiaoNi87 <xni@redhat.com>
Tue, 16 Sep 2025 12:32:32 +0000 (20:32 +0800)
Since commit e702f392959d ("Mdmonitor: Fix segfault"), when configuration
files used non-absolute ARRAY device names, commands like `mdadm --monitor
--scan` failed with `mdadm: error opening devname: No such file or
directory` unless run from the `/dev/md` directory.

Signed-off-by: QRPp <awesome.walrus+github@gmail.com>
mdmonitor.c

index ea35d98ede303e1418fa355f784a9deaafb014b6..22b0a818f9bd8addfda2f2f3b487dc67e1b1c52e 100644 (file)
@@ -254,12 +254,14 @@ int Monitor(struct mddev_dev *devlist,
                                continue;
                        if (is_devname_ignore(mdlist->devname) == true)
                                continue;
-                       if (!is_mddev(mdlist->devname))
-                               continue;
 
                        st = xcalloc(1, sizeof *st);
                        snprintf(st->devname, MD_NAME_MAX + sizeof(DEV_MD_DIR), DEV_MD_DIR "%s",
                                 basename(mdlist->devname));
+                       if (!is_mddev(st->devname)) {
+                               free(st);
+                               continue;
+                       }
                        st->next = statelist;
                        st->devnm[0] = 0;
                        st->percent = RESYNC_UNKNOWN;