diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-06-20 13:01:51 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-08-24 16:47:08 +0200 |
commit | e1114d86d9ad2b65be52e756589d94bd0c87c6ab (patch) | |
tree | c90791c752b8d5cb32725331033b2fdc57347e67 | |
parent | c7326df879ad8417f91499f737bdb48c5ead0818 (diff) |
tree-wide: drop MSG_NOSIGNAL flag from recvmsg() invocations
MSG_NOSIGNAL is only defined for sendmsg(), not for recvmsg(), hence
let's drop it's use, in particular as it appears to create problems on
older kernels. See:
https://lists.freedesktop.org/archives/systemd-devel/2018-June/040869.html
-rw-r--r-- | src/basic/socket-util.c | 2 | ||||
-rw-r--r-- | src/libelogind/sd-bus/bus-socket.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index f27816fde..7958e815b 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -1085,7 +1085,7 @@ int receive_one_fd(int transport_fd, int flags) { * combination with send_one_fd(). */ - if (recvmsg(transport_fd, &mh, MSG_NOSIGNAL | MSG_CMSG_CLOEXEC | flags) < 0) + if (recvmsg(transport_fd, &mh, MSG_CMSG_CLOEXEC | flags) < 0) return -errno; CMSG_FOREACH(cmsg, &mh) { diff --git a/src/libelogind/sd-bus/bus-socket.c b/src/libelogind/sd-bus/bus-socket.c index 730331363..b147a3843 100644 --- a/src/libelogind/sd-bus/bus-socket.c +++ b/src/libelogind/sd-bus/bus-socket.c @@ -533,7 +533,7 @@ static int bus_socket_read_auth(sd_bus *b) { mh.msg_control = &control; mh.msg_controllen = sizeof(control); - k = recvmsg(b->input_fd, &mh, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC); + k = recvmsg(b->input_fd, &mh, MSG_DONTWAIT|MSG_CMSG_CLOEXEC); if (k < 0 && errno == ENOTSOCK) { b->prefer_readv = true; k = readv(b->input_fd, &iov, 1); @@ -1163,7 +1163,7 @@ int bus_socket_read_message(sd_bus *bus) { mh.msg_control = &control; mh.msg_controllen = sizeof(control); - k = recvmsg(bus->input_fd, &mh, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC); + k = recvmsg(bus->input_fd, &mh, MSG_DONTWAIT|MSG_CMSG_CLOEXEC); if (k < 0 && errno == ENOTSOCK) { bus->prefer_readv = true; k = readv(bus->input_fd, &iov, 1); |