From 3b9243e018de883b7584011fe96cbb5a20061d94 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 3 May 2013 11:10:50 +0100 Subject: [PATCH] Fix F_DUPFD_CLOEXEC operation args The F_DUPFD_CLOEXEC operation with fcntl() expects a single int argument, specifying the minimum FD number for the newly dup'd file descriptor. We were not specifying that causing random stack data to be accessed as the FD number. Sometimes that worked, sometimes it didn't. Signed-off-by: Daniel P. Berrange (cherry picked from commit d6670a64e1067f29da3c3e032739e140280b763d) --- src/rpc/virnetsocket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index c4fd9ee981..14c4a4f907 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -1055,7 +1055,7 @@ int virNetSocketDupFD(virNetSocketPtr sock, bool cloexec) int fd; if (cloexec) - fd = fcntl(sock->fd, F_DUPFD_CLOEXEC); + fd = fcntl(sock->fd, F_DUPFD_CLOEXEC, 0); else fd = dup(sock->fd); if (fd < 0) {