socket-util: Run the fallback when the kernel complains about the null buffer (#3541)
authorKai Ruhnau <Kai.Ruhnau@live.com>
Wed, 15 Jun 2016 10:33:24 +0000 (12:33 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 15 Jun 2016 10:33:24 +0000 (12:33 +0200)
Calling recv with a NULL buffer returns EFAULT instead of EOPNOTSUPP on
older kernels (3.14).

Fixes #3407

Signed-off-by: Kai Ruhnau <kai.ruhnau@target-sg.com>
src/basic/socket-util.c

index 2aa4dac..385c3e4 100644 (file)
@@ -986,7 +986,7 @@ ssize_t next_datagram_size_fd(int fd) {
 
         l = recv(fd, NULL, 0, MSG_PEEK|MSG_TRUNC);
         if (l < 0) {
-                if (errno == EOPNOTSUPP)
+                if (errno == EOPNOTSUPP || errno == EFAULT)
                         goto fallback;
 
                 return -errno;