From: Yu Watanabe Date: Wed, 30 Mar 2022 19:14:49 +0000 (+0900) Subject: sd-device: do not ignore critical errors in device_new_from_child() X-Git-Tag: v251-rc2~243^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df88f02bb13c1ef27b3e3752efa552ed6bf88586;p=thirdparty%2Fsystemd.git sd-device: do not ignore critical errors in device_new_from_child() --- 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)