diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2017-02-13T13·33+0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-13T13·33+0100 |
commit | 77a78af6786234871f713631b12abf9d8d428daa (patch) | |
tree | 3587fd70f231fab0bba24cb5ea5a36460b238973 | |
parent | 4724903c78e80481fc63d627081fac6a98e4205d (diff) | |
parent | 649a81bcd6445d3b00f400cd6017d184bf0aaa25 (diff) |
Merge pull request #1233 from dezgeg/splice
nix-daemon: Don't splice with len=SIZE_MAX
-rw-r--r-- | src/nix-daemon/nix-daemon.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nix-daemon/nix-daemon.cc b/src/nix-daemon/nix-daemon.cc index f3ee0afc11e7..3b43ddfa16d5 100644 --- a/src/nix-daemon/nix-daemon.cc +++ b/src/nix-daemon/nix-daemon.cc @@ -23,6 +23,7 @@ #include <pwd.h> #include <grp.h> #include <fcntl.h> +#include <limits.h> #if __APPLE__ || __FreeBSD__ #include <sys/ucred.h> @@ -967,14 +968,14 @@ int main(int argc, char * * argv) if (select(nfds, &fds, nullptr, nullptr, nullptr) == -1) throw SysError("waiting for data from client or server"); if (FD_ISSET(s, &fds)) { - auto res = splice(s, nullptr, STDOUT_FILENO, nullptr, SIZE_MAX, SPLICE_F_MOVE); + auto res = splice(s, nullptr, STDOUT_FILENO, nullptr, SSIZE_MAX, SPLICE_F_MOVE); if (res == -1) throw SysError("splicing data from daemon socket to stdout"); else if (res == 0) throw EndOfFile("unexpected EOF from daemon socket"); } if (FD_ISSET(STDIN_FILENO, &fds)) { - auto res = splice(STDIN_FILENO, nullptr, s, nullptr, SIZE_MAX, SPLICE_F_MOVE); + auto res = splice(STDIN_FILENO, nullptr, s, nullptr, SSIZE_MAX, SPLICE_F_MOVE); if (res == -1) throw SysError("splicing data from stdin to daemon socket"); else if (res == 0) |