get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2196416/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2196416,
    "url": "http://patchwork.ozlabs.org/api/patches/2196416/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/20260213194113.3866662-1-P@draigBrady.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "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": "<20260213194113.3866662-1-P@draigBrady.com>",
    "list_archive_url": null,
    "date": "2026-02-13T19:41:13",
    "name": "posix: execvpe: skip $PATH components that are too long [BZ #33626]",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "a25b37a7869fd4d8644c3697fa003fbe4cf962bd",
    "submitter": {
        "id": 1430,
        "url": "http://patchwork.ozlabs.org/api/people/1430/?format=api",
        "name": "Pádraig Brady",
        "email": "P@draigBrady.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/20260213194113.3866662-1-P@draigBrady.com/mbox/",
    "series": [
        {
            "id": 492134,
            "url": "http://patchwork.ozlabs.org/api/series/492134/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=492134",
            "date": "2026-02-13T19:41:13",
            "name": "posix: execvpe: skip $PATH components that are too long [BZ #33626]",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/492134/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2196416/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2196416/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 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; dmarc=none (p=none dis=none)\n header.from=draigBrady.com",
            "sourceware.org; spf=none smtp.mailfrom=draigBrady.com",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=52.210.84.128"
        ],
        "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 4fCMyJ05wjz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 06:42:26 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 6E6104BAD149\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 19:42:24 +0000 (GMT)",
            "from mail.magicbluesmoke.com (smtp.magicbluesmoke.com\n [52.210.84.128])\n by sourceware.org (Postfix) with ESMTPS id C400F4B9DB5B\n for <libc-alpha@sourceware.org>; Fri, 13 Feb 2026 19:42:03 +0000 (GMT)",
            "from carbon3 (86-44-210-62-dynamic.agg2.lod.rsl-rtd.eircom.net\n [86.44.210.62])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n (No client certificate requested)\n by mail.magicbluesmoke.com (Postfix) with ESMTPSA id A6631453D6E;\n Fri, 13 Feb 2026 19:42:02 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 6E6104BAD149",
            "OpenDKIM Filter v2.11.0 sourceware.org C400F4B9DB5B"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org C400F4B9DB5B",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org C400F4B9DB5B",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1771011723; cv=none;\n b=MMi2El4z1tmtM8gQIdaCXI5LUuc8Njfjl9NfIza4t+i51aCkNAJ+vghB9ASqMUhMnq0VAmloU2eutooSpBpzcyRPYonzMyNmlzsVG4GI6OgKIHTqHoxvPAQPCmXrZQz79oHKJPvcrL45mWho2p8jFkRydmydRtKVx6mCw3BKe/M=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1771011723; c=relaxed/simple;\n bh=+ot+s85QQCFy7JOy9beu/iDeOuSQkDx8/tC+Ee5uSNc=;\n h=From:To:Subject:Date:Message-ID:MIME-Version;\n b=oNC+4K0WFop21YHhzpq283a7MRGU72iHuaZWLWDVUUZRr2X798F7nnMW+7Pt7rzkItANDq+kMAbgJ50Jw7mAzrV1sIgBqd3eh7Ema9hOA9lxGyCa+A99xUVD/Ct7Yb6uZU8BPTkzciarcfzaiIcJpbf2cXx8EwVH5QEwP5U4Agk=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "From": "=?utf-8?q?P=C3=A1draig_Brady?= <P@draigBrady.com>",
        "To": "libc-alpha@sourceware.org",
        "Cc": "=?utf-8?q?P=C3=A1draig_Brady?= <P@draigBrady.com>",
        "Subject": "[PATCH] posix: execvpe: skip $PATH components that are too long [BZ\n #33626]",
        "Date": "Fri, 13 Feb 2026 19:41:13 +0000",
        "Message-ID": "<20260213194113.3866662-1-P@draigBrady.com>",
        "X-Mailer": "git-send-email 2.52.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": "* posix/execvpe.c (__execvpe_common): Rather than error out\nwith ENAMETOOLONG, just ignore and try the next path.\nNote we know the FILE length is <= NAME_MAX, so the ENAMETOOLONG\nalmost certainly pertains to the current $PATH entry.\n* posix/tst-execvpe7.c: A new test based on tst-execvp3.c.\n* posix/Makefile: Reference the new test.\n---\n posix/Makefile       |  1 +\n posix/execvpe.c      |  3 ++\n posix/tst-execvpe7.c | 74 ++++++++++++++++++++++++++++++++++++++++++++\n 3 files changed, 78 insertions(+)\n create mode 100644 posix/tst-execvpe7.c",
    "diff": "diff --git a/posix/Makefile b/posix/Makefile\nindex f377948462..ec28b9e1da 100644\n--- a/posix/Makefile\n+++ b/posix/Makefile\n@@ -277,6 +277,7 @@ tests := \\\n   tst-execvpe4 \\\n   tst-execvpe5 \\\n   tst-execvpe6 \\\n+  tst-execvpe7 \\\n   tst-fexecve \\\n   tst-fnmatch \\\n   tst-fnmatch2 \\\ndiff --git a/posix/execvpe.c b/posix/execvpe.c\nindex 29e8bcd3d1..ec56e297b0 100644\n--- a/posix/execvpe.c\n+++ b/posix/execvpe.c\n@@ -157,6 +157,9 @@ __execvpe_common (const char *file, char *const argv[], char *const envp[],\n \t  /* Those errors indicate the file is missing or not executable\n \t     by us, in which case we want to just try the next path\n \t     directory.  */\n+\t  case ENAMETOOLONG:\n+\t  /* We've already verified that the FILE length is < NAME_MAX,\n+\t     so this implies a path component is too long, so skip it.  */\n \t  case ENODEV:\n \t  case ETIMEDOUT:\n \t  /* Some strange filesystems like AFS return even\ndiff --git a/posix/tst-execvpe7.c b/posix/tst-execvpe7.c\nnew file mode 100644\nindex 0000000000..d6d9d70c4e\n--- /dev/null\n+++ b/posix/tst-execvpe7.c\n@@ -0,0 +1,74 @@\n+/* Check execvpe does not fail when encountering long $PATH components.\n+   Copyright (C) 2016-2025 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#include <stdlib.h>\n+#include <libgen.h>\n+#include <limits.h>\n+\n+#include <support/capture_subprocess.h>\n+#include <support/check.h>\n+#include <support/support.h>\n+#include <support/temp_file.h>\n+#include <support/test-driver.h>\n+#include <support/xunistd.h>\n+\n+static char *fname;\n+\n+static void\n+do_prepare (int c, char** argv)\n+{\n+  int fd;\n+  TEST_VERIFY_EXIT ((fd = create_temp_file (\"testscript\", &fname)) != -1);\n+\n+  dprintf (fd, \"echo foo\\n\");\n+  TEST_VERIFY_EXIT (fchmod (fd, 0700) == 0);\n+  xclose (fd);\n+}\n+#define PREPARE do_prepare\n+\n+static void\n+run_execvpe (void *closure)\n+{\n+  char *argv[] = { fname, NULL };\n+  execvpe (basename (fname), argv, NULL);\n+\n+  support_record_failure ();\n+}\n+\n+static int\n+do_test (void)\n+{\n+  /* Linux 6.17 at least will give ENAMETOOLONG once any\n+     path component is > NAME_MAX, so ensure we skip such paths\n+     rather than failing.  [BZ #33626] */\n+  char *path = xasprintf (\"%*s:%s\", NAME_MAX+1, \"\", test_dir);\n+  TEST_VERIFY_EXIT (setenv (\"PATH\", path, 1) == 0);\n+  free (path);\n+\n+  struct support_capture_subprocess result\n+    = support_capture_subprocess (run_execvpe, NULL);\n+  support_capture_subprocess_check (&result, \"execvpe\", 0, sc_allow_stdout);\n+\n+  TEST_COMPARE_STRING (result.out.buffer, \"foo\\n\");\n+\n+  support_capture_subprocess_free (&result);\n+\n+  return 0;\n+}\n+\n+#include <support/test-driver.c>\n",
    "prefixes": []
}