- systemd: fix ready notification on abstract socket
c8f08e48-systemd-notify-fix.patch boo#987668 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=549
This commit is contained in:
parent
ff134ddc0f
commit
b527b0e7f8
46
c8f08e48-systemd-notify-fix.patch
Normal file
46
c8f08e48-systemd-notify-fix.patch
Normal file
@ -0,0 +1,46 @@
|
||||
commit c8f08e487672afcaa53629bddbc6703b5d90e846
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Mon Jul 11 17:26:48 2016 -0600
|
||||
|
||||
systemd: fix ready notification on abstract socket
|
||||
|
||||
At least with systemd v210, NOTIFY_SOCKET is abstact, e.g.
|
||||
@/org/freedesktop/systemd1/notify. sendmsg() fails on such a socket
|
||||
with "Connection refused". The unix(7) man page contains the following
|
||||
details wrt abstract socket addresses
|
||||
|
||||
abstract: an abstract socket address is distinguished (from a
|
||||
pathname socket) by the fact that sun_path[0] is a null byte
|
||||
('\0'). The socket's address in this namespace is given by the
|
||||
additional bytes in sun_path that are covered by the specified
|
||||
length of the address structure. (Null bytes in the name have
|
||||
no special significance.)
|
||||
|
||||
So we need to be more precise about the address length, setting it to
|
||||
the sizeof sa_family_t + length of address copied to sun_path instead
|
||||
of setting it to the sizeof the entire sockaddr_un struct.
|
||||
|
||||
Resolves: https://bugzilla.opensuse.org/show_bug.cgi?id=987668
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
|
||||
Index: libvirt-2.0.0/src/util/virsystemd.c
|
||||
===================================================================
|
||||
--- libvirt-2.0.0.orig/src/util/virsystemd.c
|
||||
+++ libvirt-2.0.0/src/util/virsystemd.c
|
||||
@@ -495,7 +495,6 @@ virSystemdNotifyStartup(void)
|
||||
};
|
||||
struct msghdr mh = {
|
||||
.msg_name = &un,
|
||||
- .msg_namelen = sizeof(un),
|
||||
.msg_iov = &iov,
|
||||
.msg_iovlen = 1,
|
||||
};
|
||||
@@ -515,6 +514,8 @@ virSystemdNotifyStartup(void)
|
||||
if (un.sun_path[0] == '@')
|
||||
un.sun_path[0] = '\0';
|
||||
|
||||
+ mh.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(path);
|
||||
+
|
||||
fd = socket(AF_UNIX, SOCK_DGRAM, 0);
|
||||
if (fd < 0) {
|
||||
VIR_WARN("Unable to create socket FD");
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 12 19:57:40 UTC 2016 - jfehlig@suse.com
|
||||
|
||||
- systemd: fix ready notification on abstract socket
|
||||
c8f08e48-systemd-notify-fix.patch
|
||||
boo#987668
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 1 14:16:04 UTC 2016 - jfehlig@suse.com
|
||||
|
||||
|
@ -279,6 +279,7 @@ Source4: libvirtd-relocation-server.fw
|
||||
Source99: baselibs.conf
|
||||
Source100: %{name}-rpmlintrc
|
||||
# Upstream patches
|
||||
Patch0: c8f08e48-systemd-notify-fix.patch
|
||||
# Patches pending upstream review
|
||||
Patch100: libxl-dom-reset.patch
|
||||
# Need to go upstream
|
||||
@ -730,6 +731,7 @@ libvirt plugin for NSS for translating domain names into IP addresses.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch100 -p1
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user