get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 980261,
    "url": "http://patchwork.ozlabs.org/api/patches/980261/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20181008031644.15989-24-dsahern@kernel.org/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20181008031644.15989-24-dsahern@kernel.org>",
    "list_archive_url": null,
    "date": "2018-10-08T03:16:44",
    "name": "[v2,net-next,23/23] rtnetlink: Update rtnl_fdb_dump for strict data checking",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "8f8d81313b92e42c1df784bdbf01e52c82d1ea06",
    "submitter": {
        "id": 74101,
        "url": "http://patchwork.ozlabs.org/api/people/74101/?format=api",
        "name": "David Ahern",
        "email": "dsahern@kernel.org"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20181008031644.15989-24-dsahern@kernel.org/mbox/",
    "series": [
        {
            "id": 69470,
            "url": "http://patchwork.ozlabs.org/api/series/69470/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=69470",
            "date": "2018-10-08T03:16:21",
            "name": "rtnetlink: Add support for rigid checking of data in dump request",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/69470/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/980261/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/980261/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming-netdev@ozlabs.org",
        "Delivered-To": "patchwork-incoming-netdev@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdmarc=pass (p=none dis=none) header.from=kernel.org",
            "ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=kernel.org header.i=@kernel.org\n\theader.b=\"Z5Zp75e0\"; dkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 42T5BL1n9Dz9sCr\n\tfor <patchwork-incoming-netdev@ozlabs.org>;\n\tMon,  8 Oct 2018 14:16:58 +1100 (AEDT)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1727087AbeJHK00 (ORCPT\n\t<rfc822;patchwork-incoming-netdev@ozlabs.org>);\n\tMon, 8 Oct 2018 06:26:26 -0400",
            "from mail.kernel.org ([198.145.29.99]:42578 \"EHLO mail.kernel.org\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1727040AbeJHK0X (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tMon, 8 Oct 2018 06:26:23 -0400",
            "from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com\n\t[216.129.126.126])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby mail.kernel.org (Postfix) with ESMTPSA id 242BB2089C;\n\tMon,  8 Oct 2018 03:16:53 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=default; t=1538968613;\n\tbh=QD0csxQHZrBitSgMbLkGqk5n2H/I9AnXKhVe3TidXhs=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Z5Zp75e0R6cbX4vQJdsVhWBQGRbKxUSzeho0ajSP5WSuhidTOasXmXs9hcY4Lf9Up\n\tVAAycN1Qbg23S21mIRSuPTyckDCBzWsza8FP+NpmLXigVM+HXXEVmr3aEabEYWHL3j\n\ty2DAwgY2Dbm32CkYdN0k2Pvl2r8RIVhlUS9lheks=",
        "From": "David Ahern <dsahern@kernel.org>",
        "To": "netdev@vger.kernel.org, davem@davemloft.net",
        "Cc": "christian@brauner.io, jbenc@redhat.com, stephen@networkplumber.org,\n\tDavid Ahern <dsahern@gmail.com>",
        "Subject": "[PATCH v2 net-next 23/23] rtnetlink: Update rtnl_fdb_dump for\n\tstrict data checking",
        "Date": "Sun,  7 Oct 2018 20:16:44 -0700",
        "Message-Id": "<20181008031644.15989-24-dsahern@kernel.org>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20181008031644.15989-1-dsahern@kernel.org>",
        "References": "<20181008031644.15989-1-dsahern@kernel.org>",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "From: David Ahern <dsahern@gmail.com>\n\nUpdate rtnl_fdb_dump for strict data checking. If the flag is set,\nthe dump request is expected to have an ndmsg struct as the header\npotentially followed by one or more attributes. Any data passed in the\nheader or as an attribute is taken as a request to influence the data\nreturned. Only values supported by the dump handler are allowed to be\nnon-0 or set in the request. At the moment only the NDA_IFINDEX and\nNDA_MASTER attributes are supported.\n\nSigned-off-by: David Ahern <dsahern@gmail.com>\n---\n net/core/rtnetlink.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++--\n 1 file changed, 60 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c\nindex c7509c789fb6..c894c4af8981 100644\n--- a/net/core/rtnetlink.c\n+++ b/net/core/rtnetlink.c\n@@ -3799,6 +3799,60 @@ int ndo_dflt_fdb_dump(struct sk_buff *skb,\n }\n EXPORT_SYMBOL(ndo_dflt_fdb_dump);\n \n+static int valid_fdb_dump_strict(const struct nlmsghdr *nlh,\n+\t\t\t\t int *br_idx, int *brport_idx,\n+\t\t\t\t struct netlink_ext_ack *extack)\n+{\n+\tstruct nlattr *tb[NDA_MAX + 1];\n+\tstruct ndmsg *ndm;\n+\tint err, i;\n+\n+\tif (nlh->nlmsg_len < nlmsg_msg_size(sizeof(*ndm))) {\n+\t\tNL_SET_ERR_MSG(extack, \"Invalid header for fdb dump request\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tndm = nlmsg_data(nlh);\n+\tif (ndm->ndm_pad1  || ndm->ndm_pad2  || ndm->ndm_state ||\n+\t    ndm->ndm_flags || ndm->ndm_type) {\n+\t\tNL_SET_ERR_MSG(extack, \"Invalid values in header for fbd dump request\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\terr = nlmsg_parse_strict(nlh, sizeof(struct ndmsg), tb, NDA_MAX,\n+\t\t\t\t NULL, extack);\n+\tif (err < 0)\n+\t\treturn err;\n+\n+\t*brport_idx = ndm->ndm_ifindex;\n+\tfor (i = 0; i <= NDA_MAX; ++i) {\n+\t\tif (!tb[i])\n+\t\t\tcontinue;\n+\n+\t\tswitch (i) {\n+\t\tcase NDA_IFINDEX:\n+\t\t\tif (nla_len(tb[i]) != sizeof(u32)) {\n+\t\t\t\tNL_SET_ERR_MSG(extack, \"Invalid IFINDEX attribute in fdb dump request\");\n+\t\t\t\treturn -EINVAL;\n+\t\t\t}\n+\t\t\t*brport_idx = nla_get_u32(tb[NDA_IFINDEX]);\n+\t\t\tbreak;\n+\t\tcase NDA_MASTER:\n+\t\t\tif (nla_len(tb[i]) != sizeof(u32)) {\n+\t\t\t\tNL_SET_ERR_MSG(extack, \"Invalid MASTER attribute in fdb dump request\");\n+\t\t\t\treturn -EINVAL;\n+\t\t\t}\n+\t\t\t*br_idx = nla_get_u32(tb[NDA_MASTER]);\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tNL_SET_ERR_MSG(extack, \"Unsupported attribute in fdb dump request\");\n+\t\t\treturn -EINVAL;\n+\t\t}\n+\t}\n+\n+\treturn 0;\n+}\n+\n static int valid_fdb_dump_legacy(const struct nlmsghdr *nlh,\n \t\t\t\t int *br_idx, int *brport_idx,\n \t\t\t\t struct netlink_ext_ack *extack)\n@@ -3846,8 +3900,12 @@ static int rtnl_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb)\n \tint err = 0;\n \tint fidx = 0;\n \n-\terr = valid_fdb_dump_legacy(cb->nlh, &br_idx, &brport_idx,\n-\t\t\t\t    cb->extack);\n+\tif (cb->strict_check)\n+\t\terr = valid_fdb_dump_strict(cb->nlh, &br_idx, &brport_idx,\n+\t\t\t\t\t    cb->extack);\n+\telse\n+\t\terr = valid_fdb_dump_legacy(cb->nlh, &br_idx, &brport_idx,\n+\t\t\t\t\t    cb->extack);\n \tif (err < 0)\n \t\treturn err;\n \n",
    "prefixes": [
        "v2",
        "net-next",
        "23/23"
    ]
}