From aecedc48a6d178949d8f31c8c203d817ea8a119f Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 16 Nov 2023 02:27:19 +0900 Subject: [PATCH] sd-device: do not trigger assertion by a bad udev rules The assertion can be triggered by bad `$attr{[/]}` formatting. That's not a programmer's error, but a runtime error. Prompted by #30029. --- src/libsystemd/sd-device/sd-device.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 75725a75b3d..2fbc619a34d 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -422,8 +422,13 @@ _public_ int sd_device_new_from_subsystem_sysname( int r; assert_return(ret, -EINVAL); - assert_return(path_is_normalized(subsystem), -EINVAL); - assert_return(path_is_normalized(sysname), -EINVAL); + assert_return(subsystem, -EINVAL); + assert_return(sysname, -EINVAL); + + if (!path_is_normalized(subsystem)) + return -EINVAL; + if (!path_is_normalized(sysname)) + return -EINVAL; /* translate sysname back to sysfs filename */ name = strdupa_safe(sysname); -- 2.47.3