Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2
libvirt
c8f08e48-systemd-notify-fix.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File c8f08e48-systemd-notify-fix.patch of Package libvirt
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");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor