From 730b76bd2cd5f0866baa738ae283e3b62544a28f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 23 Oct 2019 17:49:03 +0200 Subject: [PATCH] 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. --- src/libsystemd/sd-device/sd-device.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index c4a7f2f3d3..183110cbe2 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) { -- 2.25.1