get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 34962,
    "url": "http://patches.dpdk.org/api/patches/34962/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20180205121642.26428-2-stefanha@redhat.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20180205121642.26428-2-stefanha@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180205121642.26428-2-stefanha@redhat.com",
    "date": "2018-02-05T12:16:35",
    "name": "[dpdk-dev,1/8] vhost: add security model documentation to vhost_user.c",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e6f3b9a3ba7b792d4c46707316dfe90cf699b1fe",
    "submitter": {
        "id": 933,
        "url": "http://patches.dpdk.org/api/people/933/?format=api",
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com"
    },
    "delegate": {
        "id": 2642,
        "url": "http://patches.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20180205121642.26428-2-stefanha@redhat.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/34962/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/34962/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 725731B339;\n\tMon,  5 Feb 2018 13:17:00 +0100 (CET)",
            "from mx1.redhat.com (mx1.redhat.com [209.132.183.28])\n\tby dpdk.org (Postfix) with ESMTP id 7C04C1B332\n\tfor <dev@dpdk.org>; Mon,  5 Feb 2018 13:16:58 +0100 (CET)",
            "from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id E48BC81DEC;\n\tMon,  5 Feb 2018 12:16:57 +0000 (UTC)",
            "from localhost (ovpn-117-200.ams2.redhat.com [10.36.117.200])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id F17FA619F6;\n\tMon,  5 Feb 2018 12:16:52 +0000 (UTC)"
        ],
        "From": "Stefan Hajnoczi <stefanha@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "Maxime Coquelin <maxime.coquelin@redhat.com>,\n\tYuanhan Liu <yliu@fridaylinux.org>, Stefan Hajnoczi <stefanha@redhat.com>",
        "Date": "Mon,  5 Feb 2018 12:16:35 +0000",
        "Message-Id": "<20180205121642.26428-2-stefanha@redhat.com>",
        "In-Reply-To": "<20180205121642.26428-1-stefanha@redhat.com>",
        "References": "<20180205121642.26428-1-stefanha@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.12",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.25]); Mon, 05 Feb 2018 12:16:57 +0000 (UTC)",
        "Subject": "[dpdk-dev] [PATCH 1/8] vhost: add security model documentation to\n\tvhost_user.c",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Input validation is not applied consistently in vhost_user.c.  This\nsuggests that not everyone has the same security model in mind when\nworking on the code.\n\nMake the security model explicit so that everyone can understand and\nfollow the same model when modifying the code.\n\nSigned-off-by: Stefan Hajnoczi <stefanha@redhat.com>\n---\n lib/librte_vhost/vhost_user.c | 17 +++++++++++++++++\n 1 file changed, 17 insertions(+)",
    "diff": "diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c\nindex 1dd1a61b6..a96afbe84 100644\n--- a/lib/librte_vhost/vhost_user.c\n+++ b/lib/librte_vhost/vhost_user.c\n@@ -2,6 +2,23 @@\n  * Copyright(c) 2010-2016 Intel Corporation\n  */\n \n+/* Security model\n+ * --------------\n+ * The vhost-user protocol connection is an external interface, so it must be\n+ * robust against invalid inputs.\n+ *\n+ * This is important because the vhost-user master is only one step removed\n+ * from the guest.  Malicious guests that have escaped will then launch further\n+ * attacks from the vhost-user master.\n+ *\n+ * Even in deployments where guests are trusted, a bug in the vhost-user master\n+ * can still cause invalid messages to be sent.  Such messages must not\n+ * compromise the stability of the DPDK application by causing crashes, memory\n+ * corruption, or other problematic behavior.\n+ *\n+ * Do not assume received VhostUserMsg fields contain sensible values!\n+ */\n+\n #include <stdint.h>\n #include <stdio.h>\n #include <stdlib.h>\n",
    "prefixes": [
        "dpdk-dev",
        "1/8"
    ]
}