{"id":2215878,"url":"http://patchwork.ozlabs.org/api/patches/2215878/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/patch/20260325140452.1825551-2-lucas.chollet@free.fr/","project":{"id":41,"url":"http://patchwork.ozlabs.org/api/projects/41/?format=json","name":"GNU C Library","link_name":"glibc","list_id":"libc-alpha.sourceware.org","list_email":"libc-alpha@sourceware.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260325140452.1825551-2-lucas.chollet@free.fr>","list_archive_url":null,"date":"2026-03-25T14:04:51","name":"posix: Handle negative fds in spawn's addfchdir","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"3d9862afe63982c1a2f55b77695a6d41a44c7142","submitter":{"id":86596,"url":"http://patchwork.ozlabs.org/api/people/86596/?format=json","name":"Lucas Chollet","email":"lucas.chollet@free.fr"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/glibc/patch/20260325140452.1825551-2-lucas.chollet@free.fr/mbox/","series":[{"id":497449,"url":"http://patchwork.ozlabs.org/api/series/497449/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/list/?series=497449","date":"2026-03-25T14:04:51","name":"posix: Handle negative fds in spawn's addfchdir","version":1,"mbox":"http://patchwork.ozlabs.org/series/497449/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215878/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215878/checks/","tags":{},"related":[],"headers":{"Return-Path":"<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":["incoming@patchwork.ozlabs.org","libc-alpha@sourceware.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","libc-alpha@sourceware.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=free.fr header.i=@free.fr header.a=rsa-sha256\n header.s=smtp-20201208 header.b=qdA8TBP2;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=free.fr header.i=@free.fr header.a=rsa-sha256\n header.s=smtp-20201208 header.b=qdA8TBP2","sourceware.org;\n dmarc=pass (p=quarantine dis=none) header.from=free.fr","sourceware.org; spf=pass smtp.mailfrom=free.fr","server2.sourceware.org;\n arc=none smtp.remote-ip=212.27.42.4"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgpbZ4505z1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 01:06:02 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 80C964BB5938\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 14:06:00 +0000 (GMT)","from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4])\n by sourceware.org (Postfix) with ESMTPS id BDE5A4BB5886\n for <libc-alpha@sourceware.org>; Wed, 25 Mar 2026 14:05:17 +0000 (GMT)","from itxub.fritz.box (unknown\n [IPv6:2001:8e0:206a:da00:add4:7199:b0c6:12df])\n (Authenticated sender: lucas.chollet@free.fr)\n by smtp4-g21.free.fr (Postfix) with ESMTPSA id 2234519F744;\n Wed, 25 Mar 2026 15:05:12 +0100 (CET)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 80C964BB5938","OpenDKIM Filter v2.11.0 sourceware.org BDE5A4BB5886"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org BDE5A4BB5886","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org BDE5A4BB5886","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774447517; cv=none;\n b=lqIfR66uBiPEZ8aR8/X4BNg1J37+6bH3lOkNv9vQXcUj981HfTqSEzCizf9zoc0aZSLjwfrnoaYAJZthz89X4mx+JDS3iN4nNcLtMU/Hpig4yjJWluo5D6bz/FmaqBfpFpp4mT60xKWx8JFImT6obn/QbvGoc/N2cY18COa1EPs=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774447517; c=relaxed/simple;\n bh=hps/Rww5Jtb1PrYV2KrCpRc7EkaWSY39b3GPCL309NQ=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=S0/IlVwjp8ZHMWAIY4u+tSC8Axkm7vIYznZQJ8EjRh3xdJnoKOLzj4AyL8nyenR8heYPVqVtSSdoVt/3dnzShi/08X+FSJIkBXjUQPn8f7hD/HJV5KVNrH8bkQx8f0xhNy4nvhPs9eem/gKjP5IadCf3hjVFiDyoxJoqDYYh5mI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=free.fr;\n s=smtp-20201208; t=1774447516;\n bh=hps/Rww5Jtb1PrYV2KrCpRc7EkaWSY39b3GPCL309NQ=;\n h=From:To:Cc:Subject:Date:From;\n b=qdA8TBP2MTFcYSIifOQ4zNDp5InNZ8VoVxl7KaGNmtPBbtIP+NN8061YRCpI/RzBQ\n EpiuGv/LxAbxB8QYrWofnf3R50fD9GX3Io3ZMcj5PNLnLUCnd9f+9orz+vvFZlgpUf\n FzUIsvLrmoJ3BOY4707xWKKfE1Cff5wjbdvOKp7ia046OuQQSohZlV010ODOJTayMJ\n HLkG4P7GFlq4GLQayHV4oGe/47NH/gZjJmWR9MmB4PyUzer6v1XwCnl3yv7jC6eDiY\n 51Wa4j8FOufJOACce0jBpO0ALTHO7/m/bYcDJVgy/0/3bDYRKTao1YOnWdkI9FHTOV\n tr+L6Jw732Eyw==","From":"Lucas Chollet <lucas.chollet@free.fr>","To":"libc-alpha@sourceware.org","Cc":"Lucas Chollet <lucas.chollet@free.fr>","Subject":"[PATCH] posix: Handle negative fds in spawn's addfchdir","Date":"Wed, 25 Mar 2026 15:04:51 +0100","Message-ID":"<20260325140452.1825551-2-lucas.chollet@free.fr>","X-Mailer":"git-send-email 2.51.0","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"libc-alpha@sourceware.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Libc-alpha mailing list <libc-alpha.sourceware.org>","List-Unsubscribe":"<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>","List-Archive":"<https://sourceware.org/pipermail/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-request@sourceware.org?subject=help>","List-Subscribe":"<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>","Errors-To":"libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"},"content":"Hello all,\nThis is my first contribution here, so I hope I got everything right.\nI tested this patch on my Linux x86_64 machine with `make check` and\ngot no regressions compared to master.\n\n8<\n\nThis patch makes `posix_spawn_file_actions_addfchdir` return EBADF on\nnegative file descriptors. This is mandated by POSIX and similar to what\nis already done in addopen/addclose.\n\nSigned-off-by: Lucas Chollet <lucas.chollet@free.fr>\n---\n posix/spawn_faction_addfchdir.c | 3 +++\n 1 file changed, 3 insertions(+)","diff":"diff --git a/posix/spawn_faction_addfchdir.c b/posix/spawn_faction_addfchdir.c\nindex a3df6df489..b51139a61f 100644\n--- a/posix/spawn_faction_addfchdir.c\n+++ b/posix/spawn_faction_addfchdir.c\n@@ -28,6 +28,9 @@ posix_spawn_file_actions_addfchdir_np (posix_spawn_file_actions_t *actions,\n {\n   struct __spawn_action *rec;\n \n+  if (!__spawn_valid_fd (fd))\n+    return EBADF;\n+\n   /* Allocate more memory if needed.  */\n   if (actions->__used == actions->__allocated\n       && __posix_spawn_file_actions_realloc (actions) != 0)\n","prefixes":[]}