|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
From 317e24365d3d88b7a5282577a35bc8f259737f93 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
From: Tom Gundersen <teg@jklm.no>
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
Date: Wed, 11 Mar 2015 22:23:38 +0100
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
Subject: [PATCH] libudev: monitor - fix error path in send_device
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
Return -errno rather than -1 in case sendmsg() fails.
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
(cherry picked from commit a4445e88cece0444c66d70876b03065158dd4685)
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
---
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
src/libudev/libudev-monitor.c | 10 +++++++++-
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
index 3f1fee7f7e..d0486e3d1e 100644
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
--- a/src/libudev/libudev-monitor.c
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+++ b/src/libudev/libudev-monitor.c
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
@@ -749,12 +749,20 @@ int udev_monitor_send_device(struct udev_monitor *udev_monitor,
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
* If we send to a multicast group, we will get
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
* ECONNREFUSED, which is expected.
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
*/
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
- if (destination != NULL)
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ if (destination)
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
smsg.msg_name = &destination->snl;
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
else
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
smsg.msg_name = &udev_monitor->snl_destination;
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
smsg.msg_namelen = sizeof(struct sockaddr_nl);
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
count = sendmsg(udev_monitor->sock, &smsg, 0);
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ if (count < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ if (!destination && errno == ECONNREFUSED) {
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ log_debug("passed unknown number of bytes to netlink monitor %p", udev_monitor);
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ } else
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
+
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
log_debug("passed %zi bytes to netlink monitor %p", count, udev_monitor);
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
return count;
|
|
Zbigniew Jędrzejewski-Szmek |
77e6ed |
}
|