From df88f02bb13c1ef27b3e3752efa552ed6bf88586 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 31 Mar 2022 04:14:49 +0900 Subject: [PATCH] sd-device: do not ignore critical errors in device_new_from_child() --- src/libsystemd/sd-device/sd-device.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index d2fd322e2a1..19bf01abc71 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -764,12 +764,16 @@ static int device_new_from_child(sd_device **ret, sd_device *child) { } _public_ int sd_device_get_parent(sd_device *child, sd_device **ret) { + int r; + assert_return(child, -EINVAL); if (!child->parent_set) { - child->parent_set = true; + r = device_new_from_child(&child->parent, child); + if (r < 0 && r != -ENODEV) + return r; - (void) device_new_from_child(&child->parent, child); + child->parent_set = true; } if (!child->parent) -- 2.47.3