From: Yu Watanabe Date: Wed, 30 Mar 2022 09:39:50 +0000 (+0900) Subject: udev: do not append unknown errno or signal name X-Git-Tag: v251-rc2~247 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb544617170418366337f51b67d065c299b44752;p=thirdparty%2Fsystemd.git udev: do not append unknown errno or signal name Follow-up for 6467bda59d571696b645e8bbdf31926676890956. Addresses https://github.com/systemd/systemd/pull/22871#discussion_r837705779. --- diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 045e5d1319c..0a888993c86 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); }