From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxLm1-0003ot-U4 for qemu-devel@nongnu.org; Fri, 03 Aug 2012 13:34:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SxLm0-0001bi-Oo for qemu-devel@nongnu.org; Fri, 03 Aug 2012 13:34:53 -0400 Received: from e6.ny.us.ibm.com ([32.97.182.146]:59174) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SxLm0-0001be-Kg for qemu-devel@nongnu.org; Fri, 03 Aug 2012 13:34:52 -0400 Received: from /spool/local by e6.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 3 Aug 2012 13:34:49 -0400 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by d01dlp01.pok.ibm.com (Postfix) with ESMTP id 7E39738C8065 for ; Fri, 3 Aug 2012 13:33:35 -0400 (EDT) Received: from d03av06.boulder.ibm.com (d03av06.boulder.ibm.com [9.17.195.245]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q73HXW95134046 for ; Fri, 3 Aug 2012 13:33:34 -0400 Received: from d03av06.boulder.ibm.com (loopback [127.0.0.1]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q73HYgPO007374 for ; Fri, 3 Aug 2012 11:34:42 -0600 Message-ID: <501C0B65.2090409@linux.vnet.ibm.com> Date: Fri, 03 Aug 2012 13:33:25 -0400 From: Corey Bryant MIME-Version: 1.0 References: <1344014889-12390-1-git-send-email-coreyb@linux.vnet.ibm.com> <1344014889-12390-2-git-send-email-coreyb@linux.vnet.ibm.com> In-Reply-To: <1344014889-12390-2-git-send-email-coreyb@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v6 1/6] qemu-char: Add MSG_CMSG_CLOEXEC flag to recvmsg List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com, libvir-list@redhat.com, lcapitulino@redhat.com, eblake@redhat.com If these patches are acceptable, I'll resend and get the version history out of the commit message. -- Regards, Corey On 08/03/2012 01:28 PM, Corey Bryant wrote: > Set the close-on-exec flag for the file descriptor received > via SCM_RIGHTS. > > v4 > -This patch is new in v4 (eblake@redhat.com) > > v5 > -Fallback to FD_CLOEXEC if MSG_CMSG_CLOEXEC is not available > (eblake@redhat.com, stefanha@linux.vnet.ibm.com) > > v6 > -Set cloexec on correct fd (eblake@redhat.com) > > Signed-off-by: Corey Bryant > --- > qemu-char.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/qemu-char.c b/qemu-char.c > index c2aaaee..ab4a928 100644 > --- a/qemu-char.c > +++ b/qemu-char.c > @@ -2238,6 +2238,9 @@ static void unix_process_msgfd(CharDriverState *chr, struct msghdr *msg) > if (fd < 0) > continue; > > +#ifndef MSG_CMSG_CLOEXEC > + qemu_set_cloexec(fd); > +#endif > if (s->msgfd != -1) > close(s->msgfd); > s->msgfd = fd; > @@ -2253,6 +2256,7 @@ static ssize_t tcp_chr_recv(CharDriverState *chr, char *buf, size_t len) > struct cmsghdr cmsg; > char control[CMSG_SPACE(sizeof(int))]; > } msg_control; > + int flags = 0; > ssize_t ret; > > iov[0].iov_base = buf; > @@ -2263,9 +2267,13 @@ static ssize_t tcp_chr_recv(CharDriverState *chr, char *buf, size_t len) > msg.msg_control = &msg_control; > msg.msg_controllen = sizeof(msg_control); > > - ret = recvmsg(s->fd, &msg, 0); > - if (ret > 0 && s->is_unix) > +#ifdef MSG_CMSG_CLOEXEC > + flags |= MSG_CMSG_CLOEXEC; > +#endif > + ret = recvmsg(s->fd, &msg, flags); > + if (ret > 0 && s->is_unix) { > unix_process_msgfd(chr, &msg); > + } > > return ret; > } >