From fb544617170418366337f51b67d065c299b44752 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 30 Mar 2022 18:39:50 +0900 Subject: [PATCH] udev: do not append unknown errno or signal name Follow-up for 6467bda59d571696b645e8bbdf31926676890956. Addresses https://github.com/systemd/systemd/pull/22871#discussion_r837705779. --- src/udev/udevd.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 045e5d1319..0a888993c8 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -374,11 +374,16 @@ static void device_broadcast(sd_device_monitor *monitor, sd_device *dev, int res (void) device_add_property(dev, "UDEV_WORKER_FAILED", "1"); switch (result) { - case EVENT_RESULT_NERRNO_MIN ... EVENT_RESULT_NERRNO_MAX: + case EVENT_RESULT_NERRNO_MIN ... EVENT_RESULT_NERRNO_MAX: { + const char *str; + (void) device_add_propertyf(dev, "UDEV_WORKER_ERRNO", "%i", -result); - (void) device_add_propertyf(dev, "UDEV_WORKER_ERRNO_NAME", "%s", strna(errno_to_name(result))); - break; + str = errno_to_name(result); + if (str) + (void) device_add_property(dev, "UDEV_WORKER_ERRNO_NAME", str); + break; + } case EVENT_RESULT_EXIT_STATUS_BASE ... EVENT_RESULT_EXIT_STATUS_MAX: (void) device_add_propertyf(dev, "UDEV_WORKER_EXIT_STATUS", "%i", result - EVENT_RESULT_EXIT_STATUS_BASE); break; @@ -387,11 +392,16 @@ static void device_broadcast(sd_device_monitor *monitor, sd_device *dev, int res assert_not_reached(); break; - case EVENT_RESULT_SIGNAL_BASE ... EVENT_RESULT_SIGNAL_MAX: + case EVENT_RESULT_SIGNAL_BASE ... EVENT_RESULT_SIGNAL_MAX: { + const char *str; + (void) device_add_propertyf(dev, "UDEV_WORKER_SIGNAL", "%i", result - EVENT_RESULT_SIGNAL_BASE); - (void) device_add_propertyf(dev, "UDEV_WORKER_SIGNAL_NAME", "%s", strna(signal_to_string(result - EVENT_RESULT_SIGNAL_BASE))); - break; + str = signal_to_string(result - EVENT_RESULT_SIGNAL_BASE); + if (str) + (void) device_add_property(dev, "UDEV_WORKER_SIGNAL_NAME", str); + break; + } default: log_device_warning(dev, "Unknown event result \"%i\", ignoring.", result); } -- 2.25.1