|
|
e86b25 |
From 7ce318610afcbb793e438332687c2f09844a86c2 Mon Sep 17 00:00:00 2001
|
|
|
e86b25 |
From: Karel Zak <kzak@redhat.com>
|
|
|
e86b25 |
Date: Thu, 25 Nov 2021 11:54:11 +0100
|
|
|
e86b25 |
Subject: [PATCH 71/74] libblkid: check UBI char device name
|
|
|
e86b25 |
|
|
|
e86b25 |
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=2026511
|
|
|
e86b25 |
Upstream: http://github.com/util-linux/util-linux/commit/7eb6d9ce4526b968e30f7e538cbbbdf9938e5891
|
|
|
e86b25 |
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
|
e86b25 |
---
|
|
|
e86b25 |
libblkid/src/probe.c | 12 ++++++++++--
|
|
|
e86b25 |
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
e86b25 |
|
|
|
e86b25 |
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c
|
|
|
e86b25 |
index a6dc8416a..49a62c47f 100644
|
|
|
e86b25 |
--- a/libblkid/src/probe.c
|
|
|
e86b25 |
+++ b/libblkid/src/probe.c
|
|
|
e86b25 |
@@ -915,9 +915,17 @@ int blkid_probe_set_device(blkid_probe pr, int fd,
|
|
|
e86b25 |
DBG(LOWPROBE, ul_debug("failed to get device size"));
|
|
|
e86b25 |
goto err;
|
|
|
e86b25 |
}
|
|
|
e86b25 |
- } else if (S_ISCHR(sb.st_mode))
|
|
|
e86b25 |
+ } else if (S_ISCHR(sb.st_mode)) {
|
|
|
e86b25 |
+ char buf[PATH_MAX];
|
|
|
e86b25 |
+
|
|
|
e86b25 |
+ if (!sysfs_chrdev_devno_to_devname(sb.st_rdev, buf, sizeof(buf))
|
|
|
e86b25 |
+ || strncmp(buf, "ubi", 3) != 0) {
|
|
|
e86b25 |
+ DBG(LOWPROBE, ul_debug("no UBI char device"));
|
|
|
e86b25 |
+ errno = EINVAL;
|
|
|
e86b25 |
+ goto err;
|
|
|
e86b25 |
+ }
|
|
|
e86b25 |
devsiz = 1; /* UBI devices are char... */
|
|
|
e86b25 |
- else if (S_ISREG(sb.st_mode))
|
|
|
e86b25 |
+ } else if (S_ISREG(sb.st_mode))
|
|
|
e86b25 |
devsiz = sb.st_size; /* regular file */
|
|
|
e86b25 |
|
|
|
e86b25 |
pr->size = size ? (uint64_t)size : devsiz;
|
|
|
e86b25 |
--
|
|
|
e86b25 |
2.31.1
|
|
|
e86b25 |
|