From 133d78966fe8b1469e593bd467d9055f7afa5858 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 12 Aug 2022 04:16:56 +0900 Subject: [PATCH 1/2] sd-device-monitor: fix inversed condition Fixes an issue introduced by b3d06b9226db96fddb6bb45a4708e2e8d413d91d. --- src/libsystemd/sd-device/device-monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index 459dbdf4e4..47a5d85886 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -446,7 +446,7 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) { buflen = recvmsg(m->sock, &smsg, 0); if (buflen < 0) { - if (ERRNO_IS_TRANSIENT(errno)) + if (!ERRNO_IS_TRANSIENT(errno)) log_debug_errno(errno, "sd-device-monitor: Failed to receive message: %m"); return -errno; } From 8bb4989906a1659b0f6adfa03dc7585e294a392b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 12 Aug 2022 04:19:27 +0900 Subject: [PATCH 2/2] sd-device-monitor: actually refuse to send invalid devices Fixes an issue introduced by 9e79123884a36ce095b98d1c0fe247dddf02dbec. --- src/libsystemd/sd-device/device-monitor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index 47a5d85886..c179c116bb 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -578,8 +578,8 @@ int device_monitor_send_device( if (r < 0) return log_device_debug_errno(device, r, "sd-device-monitor: Failed to get device properties: %m"); if (blen < 32) - log_device_debug_errno(device, SYNTHETIC_ERRNO(EINVAL), - "sd-device-monitor: Length of device property nulstr is too small to contain valid device information"); + return log_device_debug_errno(device, SYNTHETIC_ERRNO(EINVAL), + "sd-device-monitor: Length of device property nulstr is too small to contain valid device information"); /* fill in versioned header */ r = sd_device_get_subsystem(device, &val);