diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2026-01-01 13:54:20 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2026-01-01 13:54:20 +0000 |
| commit | 6f69e5d4b0c08453dcec16b9c03829dc530809f3 (patch) | |
| tree | 18ffa9adff47c811691d98ddedd143742cbc848b /src | |
| parent | 842d63a86dd3f023c4becbfc32621cc7c14f2b27 (diff) | |
| download | bcnm-6f69e5d4b0c08453dcec16b9c03829dc530809f3.tar.gz | |
Prepare for 0.0.2.2; save/restore errno in safe wrappers
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwpactrl/wpactrl_fd_recv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libwpactrl/wpactrl_fd_recv.c b/src/libwpactrl/wpactrl_fd_recv.c index 9640b6c..f4134a3 100644 --- a/src/libwpactrl/wpactrl_fd_recv.c +++ b/src/libwpactrl/wpactrl_fd_recv.c @@ -2,9 +2,11 @@ #include <skalibs/sysdeps.h> #include <skalibs/nonposix.h> + #include <sys/socket.h> #include <sys/uio.h> #include <errno.h> + #include <bcnm/wpactrl.h> #include "wpactrl-internal.h" @@ -34,8 +36,9 @@ ssize_t wpactrl_fd_recv (int fd, char *s, size_t len) .msg_control = 0, .msg_controllen = 0 } ; + int e = errno ; ssize_t r ; do r = recvmsg(fd, &msghdr, bsd_braindeadness_workaround_flags) ; while (r == -1 && errno == EINTR) ; - return r > 0 && msghdr.msg_flags & MSG_TRUNC ? (errno = EMSGSIZE, -1) : r ; + return r > 0 && msghdr.msg_flags & MSG_TRUNC ? (errno = EMSGSIZE, -1) : (errno = e, r) ; } |
