From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id AC4213858D37 for ; Thu, 20 Apr 2023 21:14:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AC4213858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gnu.org Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ppbbV-0002I7-6g; Thu, 20 Apr 2023 17:14:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=In-Reply-To:MIME-Version:References:Subject:To:From: Date; bh=bUmU0HVhyLsN6LJCx9xJUZnO3+aaHYyVKnhZ3kMrZQ0=; b=PsmAplaOtPnqF9rbbMWL 7nXRJFntHQe1wsxXGe5wHDo8f9vr2/7iCfP2z8lKvg+e0MkOr2iQSeCenx0cdeQO1TpwTte1IsbBP X3IGZYaNqYByuqY2TPiQPWPh3P3LZJFtHacGA0CQ2c1IL4aaudPjeFd9MsyRNcggUXPy5Oi/oKpLT IA5qFaWQPfww9lLJyubZnWL8cuZFi/f0n+KVRQ6y0oZUsDkmOeJVVwVMhFqSB5SgAhcxXr2/zDmiT EI1te51WLulwS7XXx+gI45yDcsW111//6hbCHYLYHexmlHOSqBcWergFhs1ON3WH5FtN7PrXTVSpj RozF6VMt2UeM8g==; Received: from [2a01:cb19:4a:a400:de41:a9ff:fe47:ec49] (helo=begin.home) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ppbbU-0006Pv-Hy; Thu, 20 Apr 2023 17:14:08 -0400 Received: from samy by begin.home with local (Exim 4.96) (envelope-from ) id 1ppbbR-009Z2h-1t; Thu, 20 Apr 2023 23:14:05 +0200 Date: Thu, 20 Apr 2023 23:14:05 +0200 From: Samuel Thibault To: Sergey Bugaev Cc: libc-alpha@sourceware.org, bug-hurd@gnu.org, Emilio Pozuelo Monfort Subject: Re: [PATCH 1/4] hurd: Don't pass fd flags in CMSG_DATA Message-ID: <20230420211405.i7uwo3ocpjudfx45@begin> Mail-Followup-To: Sergey Bugaev , libc-alpha@sourceware.org, bug-hurd@gnu.org, Emilio Pozuelo Monfort References: <20230417133902.99040-1-bugaevc@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230417133902.99040-1-bugaevc@gmail.com> Organization: I am not organized User-Agent: NeoMutt/20170609 (1.8.3) X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Sergey Bugaev, le lun. 17 avril 2023 16:38:59 +0300, a ecrit: > The only valid flag defined here is FD_CLOEXEC. It is of no concern to > the receiving process whether or not the sender process wants to close > its copy of sent file descriptor upon exec, Ok, but couldn't there be some flags that we could want to transfer, in the future? I'd better keep the infrastructure, even if it is not actually useful for now. So that people who end up needing something see that passing it is already supported. Samuel > and it should not influence > whether or not the received file descriptor gets the FD_CLOEXEC flag > set in the receiving process. > > The latter should in fact be dependent on the MSG_CMSG_CLOEXEC flag > being passed to the recvmsg () call, which is going to be implemented > in the following commit. > > Fixes 344e755248ce02c0f8d095d11cc49e340703d926 > "hurd: Support sending file descriptors over Unix sockets" > > Signed-off-by: Sergey Bugaev > --- > sysdeps/mach/hurd/recvmsg.c | 3 +-- > sysdeps/mach/hurd/sendmsg.c | 4 ++-- > 2 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/sysdeps/mach/hurd/recvmsg.c b/sysdeps/mach/hurd/recvmsg.c > index 39de86f6..5e8b18c6 100644 > --- a/sysdeps/mach/hurd/recvmsg.c > +++ b/sysdeps/mach/hurd/recvmsg.c > @@ -189,7 +189,6 @@ __libc_recvmsg (int fd, struct msghdr *message, int flags) > if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) > { > /* SCM_RIGHTS support. */ > - /* The fd's flags are passed in the control data. */ > int *fds = (int *) CMSG_DATA (cmsg); > nfds = (cmsg->cmsg_len - CMSG_ALIGN (sizeof (struct cmsghdr))) > / sizeof (int); > @@ -200,7 +199,7 @@ __libc_recvmsg (int fd, struct msghdr *message, int flags) > if (err) > goto cleanup; > fds[j] = opened_fds[newfds] = _hurd_intern_fd (newports[newfds], > - fds[j], 0); > + 0, 0); > if (fds[j] == -1) > { > err = errno; > diff --git a/sysdeps/mach/hurd/sendmsg.c b/sysdeps/mach/hurd/sendmsg.c > index 5871d1d8..77a720fb 100644 > --- a/sysdeps/mach/hurd/sendmsg.c > +++ b/sysdeps/mach/hurd/sendmsg.c > @@ -138,8 +138,8 @@ __libc_sendmsg (int fd, const struct msghdr *message, int flags) > 0, 0, 0, 0); > if (! err) > nports++; > - /* We pass the flags in the control data. */ > - fds[i] = descriptor->flags; > + /* We just pass 0 in the control data. */ > + fds[i] = 0; > err; > })); > > -- > 2.39.2 > -- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.