]> www.infradead.org Git - mtd-utils.git/commitdiff
ubifs-utils: open_ubi: Set errno if the target is not char device
authorZhihao Cheng <chengzhihao1@huawei.com>
Mon, 11 Nov 2024 09:01:01 +0000 (17:01 +0800)
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>
Mon, 11 Nov 2024 09:32:45 +0000 (10:32 +0100)
Set errno if the target is not char device. It will be useful for
fsck to print error message if open_ubi failed.

Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
ubifs-utils/libubifs/super.c

index 1cbbfcacb5906c2bb95d51e654783b567ca00024..9fa366f3f5b4d2d3d6d7e61d4c15a510e1f26c5c 100644 (file)
@@ -43,9 +43,14 @@ int open_ubi(struct ubifs_info *c, const char *node)
 {
        struct stat st;
 
-       if (stat(node, &st) || !S_ISCHR(st.st_mode))
+       if (stat(node, &st))
                return -1;
 
+       if (!S_ISCHR(st.st_mode)) {
+               errno = ENODEV;
+               return -1;
+       }
+
        c->libubi = libubi_open();
        if (!c->libubi)
                return -1;