X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsd-daemon.c;h=3bb258d3418570fe6c5ac8540c47c089a77b703e;hp=5df70e38d524d2f5866c31f54eb84e854761d941;hb=a013bd94cc0137c20236f3db2fa156ada9373e59;hpb=fd8bccfbf9e50a7a0a209867130aac434e0754e7 diff --git a/src/sd-daemon.c b/src/sd-daemon.c index 5df70e38d..3bb258d34 100644 --- a/src/sd-daemon.c +++ b/src/sd-daemon.c @@ -381,7 +381,11 @@ int sd_notify(int unset_environment, const char *state) { memset(&msghdr, 0, sizeof(msghdr)); msghdr.msg_name = &sockaddr; - msghdr.msg_namelen = sizeof(struct sockaddr_un); + msghdr.msg_namelen = sizeof(sa_family_t) + strlen(e); + + if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) + msghdr.msg_namelen = sizeof(struct sockaddr_un); + msghdr.msg_iov = &iovec; msghdr.msg_iovlen = 1; msghdr.msg_control = &control;