Re: [PATCH 9pfs] main.c: pass minimum FD number to fcntl

Sergey Bugaev <[email protected]>
Newsgroups gmane.os.hurd.bugs
Message-ID <CAN9u=HecoKCKrgUTdFVEi6KB-qxiAF1cYdNG4pUnhk3tVyjPCA@mail.gmail.com>
On Sat, Jun 6, 2026 at 8:54 PM <[email protected]> wrote:
>
> From: Diego Nieto Cid <[email protected]>
>
> fcntl with the F_DUPFD_CLOEXEC expect a third int argument
> which would take whatever garbage is in the stack if not
> provided.

Good catch, thanks!

And a reminder that my own work [0][1] on making glibc emit a
compile-time error on getting this wrong never landed.

[0]: https://sourceware.org/pipermail/libc-alpha/2023-July/150498.html
[1]: https://sourceware.org/pipermail/libc-alpha/2023-May/148569.html

> ---
>  main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/main.c b/main.c
> index 423d249..b34232f 100644
> --- a/main.c
> +++ b/main.c
> @@ -427,7 +427,7 @@ establish_connection ()
>    if (fd < 0)
>      error (1, errno, "Cannot open connection");
>
> -  fd_dup = fcntl (fd, F_DUPFD_CLOEXEC);
> +  fd_dup = fcntl (fd, F_DUPFD_CLOEXEC, fd);

But why use fd, should we not pass 0 if we don't care about the
resulting numeric value?

Sergey
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.