From 23d3dfc369fb8ccb8c19c6b752923c267b89063b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 18 Sep 2022 09:03:05 +0900 Subject: [PATCH] sd-device: refuse block device without subsystem Previously, even if sd_device_get_subsystem() returns -ENOENT for block device, we accepted that. This makes the check slightly stricter. --- src/libsystemd/sd-device/sd-device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 91af4a27ed..13328ffd83 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -281,7 +281,7 @@ _public_ int sd_device_new_from_syspath(sd_device **ret, const char *syspath) { int device_new_from_mode_and_devnum(sd_device **ret, mode_t mode, dev_t devnum) { _cleanup_(sd_device_unrefp) sd_device *dev = NULL; _cleanup_free_ char *syspath = NULL; - const char *t, *subsystem; + const char *t, *subsystem = NULL; dev_t n; int r; @@ -315,7 +315,7 @@ int device_new_from_mode_and_devnum(sd_device **ret, mode_t mode, dev_t devnum) r = sd_device_get_subsystem(dev, &subsystem); if (r < 0 && r != -ENOENT) return r; - if (r >= 0 && streq(subsystem, "block") != !!S_ISBLK(mode)) + if (streq_ptr(subsystem, "block") != !!S_ISBLK(mode)) return -ENXIO; *ret = TAKE_PTR(dev); -- 2.25.1