get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217978,
    "url": "http://patchwork.ozlabs.org/api/patches/2217978/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/5267bb5b37997fa793c28c4b928a828cfb3a3927.1774859629.git.zcliangcn@gmail.com/",
    "project": {
        "id": 26,
        "url": "http://patchwork.ozlabs.org/api/projects/26/?format=api",
        "name": "Netfilter Development",
        "link_name": "netfilter-devel",
        "list_id": "netfilter-devel.vger.kernel.org",
        "list_email": "netfilter-devel@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<5267bb5b37997fa793c28c4b928a828cfb3a3927.1774859629.git.zcliangcn@gmail.com>",
    "list_archive_url": null,
    "date": "2026-03-31T07:34:41",
    "name": "[1/1] netfilter: ip6t_eui64: validate MAC header before using it",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "2810a73b776bd20e183b88be42d2960522d0a032",
    "submitter": {
        "id": 92912,
        "url": "http://patchwork.ozlabs.org/api/people/92912/?format=api",
        "name": "Ren Wei",
        "email": "n05ec@lzu.edu.cn"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/5267bb5b37997fa793c28c4b928a828cfb3a3927.1774859629.git.zcliangcn@gmail.com/mbox/",
    "series": [
        {
            "id": 498135,
            "url": "http://patchwork.ozlabs.org/api/series/498135/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=498135",
            "date": "2026-03-31T07:34:41",
            "name": "[1/1] netfilter: ip6t_eui64: validate MAC header before using it",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498135/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217978/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217978/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <netfilter-devel+bounces-11512-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "netfilter-devel@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11512-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=129.150.39.64",
            "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=lzu.edu.cn",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=lzu.edu.cn"
        ],
        "Received": [
            "from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flKw03YL3z1yGH\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 18:47:28 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 0507A301C693\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 07:35:30 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id C041E3C872B;\n\tTue, 31 Mar 2026 07:35:26 +0000 (UTC)",
            "from sgoci-sdnproxy-4.icoremail.net (sgoci-sdnproxy-4.icoremail.net\n [129.150.39.64])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 48E6A3C3BFC\n\tfor <netfilter-devel@vger.kernel.org>; Tue, 31 Mar 2026 07:35:20 +0000 (UTC)",
            "from enjou-Legion-Y7000P-2019.coin-barley.ts.net (unknown\n [172.23.56.36])\n\tby app1 (Coremail) with SMTP id ygmowABXyvoYectpnpeXAA--.52190S3;\n\tTue, 31 Mar 2026 15:34:57 +0800 (CST)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774942526; cv=none;\n b=OFQZ1gr9+/9evc5x089Zuq5BhueC5C7udLVC2XKs3piMMKPfIKWz0MR/IoY4FRQAbKpHAJW67AJJaqwnnwdBIEzivblyNQYaMBHgf2fyui8LqKMBPMxkSCk/JZeQCBkfb1/HL2608VRxYcL1UdaD3RfEQLh1Xe0/6LtT6BAv2Dw=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774942526; c=relaxed/simple;\n\tbh=KZ06V6xNiQKiGsihPRFcar4LScO19ypPjdQDSHi5YMM=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=B/QhayMoVxOuRKj/RESJx6wmj7oDKK4yBY2tUzwzNOFNAqsEzaqrI8OliRzgMUqYRWeKmPdjcn8Nsn9pasSvPAwDJub+Byu99b7HbqZNeOTXyH/U9fII344hBAtGNz0B+rHKvS/mPHDweVzakUIH2XqSI1TNj12n3N2oQX9DXM0=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=lzu.edu.cn;\n spf=pass smtp.mailfrom=lzu.edu.cn; arc=none smtp.client-ip=129.150.39.64",
        "From": "Ren Wei <n05ec@lzu.edu.cn>",
        "To": "security@kernel.org,\n\tnetfilter-devel@vger.kernel.org",
        "Cc": "pablo@netfilter.org,\n\tfw@strlen.de,\n\tphil@nwl.cc,\n\tdavem@davemloft.net,\n\tdsahern@kernel.org,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\thorms@kernel.org,\n\tyifanwucs@gmail.com,\n\ttomapufckgml@gmail.com,\n\tyuantan098@gmail.com,\n\tbird@lzu.edu.cn,\n\tenjou1224z@gmail.com,\n\tzcliangcn@gmail.com,\n\tn05ec@lzu.edu.cn",
        "Subject": "[PATCH 1/1] netfilter: ip6t_eui64: validate MAC header before using\n it",
        "Date": "Tue, 31 Mar 2026 15:34:41 +0800",
        "Message-ID": "\n <5267bb5b37997fa793c28c4b928a828cfb3a3927.1774859629.git.zcliangcn@gmail.com>",
        "X-Mailer": "git-send-email 2.51.0",
        "In-Reply-To": "<cover.1774859629.git.zcliangcn@gmail.com>",
        "References": "<cover.1774859629.git.zcliangcn@gmail.com>",
        "Precedence": "bulk",
        "X-Mailing-List": "netfilter-devel@vger.kernel.org",
        "List-Id": "<netfilter-devel.vger.kernel.org>",
        "List-Subscribe": "<mailto:netfilter-devel+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:netfilter-devel+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-CM-TRANSID": "ygmowABXyvoYectpnpeXAA--.52190S3",
        "X-Coremail-Antispam": "1UD129KBjvJXoWxGF18WF48Zr45Aw4fCr4DJwb_yoW5Xr4fpw\n\ts3KryrtrWkJr1akw1kKry8ZFZ8tF18ta43Was0k3s2gF4qgrn5tayrt3Wjva1FyrZYgF4f\n\ttryYvFn8Gw4DA37anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n\t9KBjDU0xBIdaVrnRJUUUBY1xkIjI8I6I8E6xAIw20EY4v20xvaj40_JFC_Wr1l1IIY67AE\n\tw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2\n\tIY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2\n\tz280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcV\n\tAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j\n\t6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64\n\tvIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2IY04v7MxkF7I0E\n\tn4kS14v26r4a6rW5MxkIecxEwVCm-wCF04k20xvY0x0EwIxGrwCF04k20xvE74AGY7Cv6c\n\tx26r48MxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCj\n\tr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x0EwIxGrwCI42IY6x\n\tIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAI\n\tw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x\n\t0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7sRi_HU3UUUUU==",
        "X-CM-SenderInfo": "zqqvvuo6o23hxhgxhubq/1tbiAQQDCWnKnHsP8wAAs3"
    },
    "content": "From: Zhengchuan Liang <zcliangcn@gmail.com>\n\n`eui64_mt6()` derives a modified EUI-64 from the Ethernet source\naddress and compares it with the low 64 bits of the IPv6 source\naddress.\n\nThe match unconditionally reaches `skb_mac_header()` and `eth_hdr(skb)`\nafter a guard that only rejects an invalid MAC header when\n`par->fragoff != 0`. As a result, non-fragment packets can still reach\n`eth_hdr(skb)` even when the skb has no MAC header set, or when the MAC\nheader does not cover a full Ethernet header.\n\nFix this by first checking that the MAC header is set and spans a full\nEthernet header before accessing it, then using that validated header\ndirectly for the EUI-64 comparison. Preserve the existing hotdrop\nbehavior for non-first fragments with an invalid MAC header.\n\nFixes: 1da177e4c3f41 (\"Linux-2.6.12-rc2\")\nReported-by: Yifan Wu <yifanwucs@gmail.com>\nReported-by: Juefei Pu <tomapufckgml@gmail.com>\nCo-developed-by: Yuan Tan <yuantan098@gmail.com>\nSigned-off-by: Yuan Tan <yuantan098@gmail.com>\nSuggested-by: Xin Liu <bird@lzu.edu.cn>\nTested-by: Ren Wei <enjou1224z@gmail.com>\nSigned-off-by: Zhengchuan Liang <zcliangcn@gmail.com>\nSigned-off-by: Ren Wei <n05ec@lzu.edu.cn>\n---\n net/ipv6/netfilter/ip6t_eui64.c | 23 ++++++++++++++++-------\n 1 file changed, 16 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/net/ipv6/netfilter/ip6t_eui64.c b/net/ipv6/netfilter/ip6t_eui64.c\nindex d704f7ed300c2..dbf64948d72c0 100644\n--- a/net/ipv6/netfilter/ip6t_eui64.c\n+++ b/net/ipv6/netfilter/ip6t_eui64.c\n@@ -19,21 +19,30 @@ MODULE_AUTHOR(\"Andras Kis-Szabo <kisza@sch.bme.hu>\");\n static bool\n eui64_mt6(const struct sk_buff *skb, struct xt_action_param *par)\n {\n+\tconst unsigned char *mac;\n+\tconst struct ethhdr *eth;\n \tunsigned char eui64[8];\n \n-\tif (!(skb_mac_header(skb) >= skb->head &&\n-\t      skb_mac_header(skb) + ETH_HLEN <= skb->data) &&\n-\t    par->fragoff != 0) {\n-\t\tpar->hotdrop = true;\n+\tif (!skb_mac_header_was_set(skb)) {\n+\t\tif (par->fragoff != 0)\n+\t\t\tpar->hotdrop = true;\n \t\treturn false;\n \t}\n \n+\tmac = skb_mac_header(skb);\n+\tif (mac < skb->head || mac + ETH_HLEN > skb->data) {\n+\t\tif (par->fragoff != 0)\n+\t\t\tpar->hotdrop = true;\n+\t\treturn false;\n+\t}\n+\teth = (const struct ethhdr *)mac;\n+\n \tmemset(eui64, 0, sizeof(eui64));\n \n-\tif (eth_hdr(skb)->h_proto == htons(ETH_P_IPV6)) {\n+\tif (eth->h_proto == htons(ETH_P_IPV6)) {\n \t\tif (ipv6_hdr(skb)->version == 0x6) {\n-\t\t\tmemcpy(eui64, eth_hdr(skb)->h_source, 3);\n-\t\t\tmemcpy(eui64 + 5, eth_hdr(skb)->h_source + 3, 3);\n+\t\t\tmemcpy(eui64, eth->h_source, 3);\n+\t\t\tmemcpy(eui64 + 5, eth->h_source + 3, 3);\n \t\t\teui64[3] = 0xff;\n \t\t\teui64[4] = 0xfe;\n \t\t\teui64[0] ^= 0x02;\n",
    "prefixes": [
        "1/1"
    ]
}