From: Zbigniew Jędrzejewski-Szmek Date: Wed, 23 Oct 2019 15:49:03 +0000 (+0200) Subject: sd-device: allow sd_device_get_devtype to be called with NULL arg and do not assert X-Git-Tag: v244-rc1~160^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=730b76bd2cd5f0866baa738ae283e3b62544a28f;p=thirdparty%2Fsystemd.git sd-device: allow sd_device_get_devtype to be called with NULL arg and do not assert We shouldn't call assert() on user-specified arguments in public functions. While at it, let's return 1 if the type exists, and 0 otherwise. --- diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index c4a7f2f3d34..183110cbe25 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -838,8 +838,7 @@ _public_ int sd_device_get_subsystem(sd_device *device, const char **ret) { _public_ int sd_device_get_devtype(sd_device *device, const char **devtype) { int r; - assert(devtype); - assert(device); + assert_return(device, -EINVAL); r = device_read_uevent_file(device); if (r < 0) @@ -848,9 +847,10 @@ _public_ int sd_device_get_devtype(sd_device *device, const char **devtype) { if (!device->devtype) return -ENOENT; - *devtype = device->devtype; + if (devtype) + *devtype = device->devtype; - return 0; + return !!device->devtype; } _public_ int sd_device_get_parent_with_subsystem_devtype(sd_device *child, const char *subsystem, const char *devtype, sd_device **ret) {