get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134234,
    "url": "http://patches.dpdk.org/api/patches/134234/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231114084133.3573959-4-haijie1@huawei.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": "<20231114084133.3573959-4-haijie1@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231114084133.3573959-4-haijie1@huawei.com",
    "date": "2023-11-14T08:41:14",
    "name": "[v2,03/22] app/compress-perf: replace strtok with reentrant version",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "586e97b5607c98f17f49b2fa31e728e0d0c26f7c",
    "submitter": {
        "id": 2935,
        "url": "http://patches.dpdk.org/api/people/2935/?format=api",
        "name": "Jie Hai",
        "email": "haijie1@huawei.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231114084133.3573959-4-haijie1@huawei.com/mbox/",
    "series": [
        {
            "id": 30286,
            "url": "http://patches.dpdk.org/api/series/30286/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30286",
            "date": "2023-11-14T08:41:12",
            "name": "replace strtok with reentrant version",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/30286/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134234/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/134234/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 1994843325;\n\tTue, 14 Nov 2023 09:47:29 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 535BE4067C;\n\tTue, 14 Nov 2023 09:47:17 +0100 (CET)",
            "from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])\n by mails.dpdk.org (Postfix) with ESMTP id 0CBB24027B\n for <dev@dpdk.org>; Tue, 14 Nov 2023 09:47:13 +0100 (CET)",
            "from kwepemd100004.china.huawei.com (unknown [172.30.72.55])\n by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4SV0Fh2wt0zrV4m;\n Tue, 14 Nov 2023 16:43:52 +0800 (CST)",
            "from localhost.localdomain (10.67.165.2) by\n kwepemd100004.china.huawei.com (7.221.188.31) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.2.1258.23; Tue, 14 Nov 2023 16:47:10 +0800"
        ],
        "From": "Jie Hai <haijie1@huawei.com>",
        "To": "<dev@dpdk.org>, Tomasz Jozwiak <tomaszx.jozwiak@intel.com>, Fiona Trahe\n <fiona.trahe@intel.com>, Pablo de Lara <pablo.de.lara.guarch@intel.com>, Lee\n Daly <lee.daly@intel.com>, Shally Verma <shallyv@marvell.com>",
        "CC": "<haijie1@huawei.com>, <lihuisong@huawei.com>, <fengchengwen@huawei.com>",
        "Subject": "[PATCH v2 03/22] app/compress-perf: replace strtok with reentrant\n version",
        "Date": "Tue, 14 Nov 2023 16:41:14 +0800",
        "Message-ID": "<20231114084133.3573959-4-haijie1@huawei.com>",
        "X-Mailer": "git-send-email 2.30.0",
        "In-Reply-To": "<20231114084133.3573959-1-haijie1@huawei.com>",
        "References": "<20231113104550.2138654-1-haijie1@huawei.com>\n <20231114084133.3573959-1-haijie1@huawei.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.67.165.2]",
        "X-ClientProxiedBy": "dggems701-chm.china.huawei.com (10.3.19.178) To\n kwepemd100004.china.huawei.com (7.221.188.31)",
        "X-CFilter-Loop": "Reflected",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Multiple threads calling the same function may cause condition\nrace issues, which often leads to abnormal behavior and can cause\nmore serious vulnerabilities such as abnormal termination, denial\nof service, and compromised data integrity.\n\nThe strtok() is non-reentrant, it is better to replace it with a\nreentrant version.\n\nFixes: e0b6287c035d (\"app/compress-perf: add parser\")\nCc: stable@dpdk.org\n\nSigned-off-by: Jie Hai <haijie1@huawei.com>\nAcked-by: Chengwen Feng <fengchengwen@huawei.com>\n---\n app/test-compress-perf/comp_perf_options_parse.c | 16 +++++++++-------\n 1 file changed, 9 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-compress-perf/comp_perf_options_parse.c\nindex 6d8c370fc2ea..a390fa36c56c 100644\n--- a/app/test-compress-perf/comp_perf_options_parse.c\n+++ b/app/test-compress-perf/comp_perf_options_parse.c\n@@ -177,6 +177,7 @@ parse_range(const char *arg, uint8_t *min, uint8_t *max, uint8_t *inc)\n {\n \tchar *token;\n \tuint8_t number;\n+\tchar *sp = NULL;\n \n \tchar *copy_arg = strdup(arg);\n \n@@ -184,7 +185,7 @@ parse_range(const char *arg, uint8_t *min, uint8_t *max, uint8_t *inc)\n \t\treturn -1;\n \n \terrno = 0;\n-\ttoken = strtok(copy_arg, \":\");\n+\ttoken = strtok_s(copy_arg, \":\", &sp);\n \n \t/* Parse minimum value */\n \tif (token != NULL) {\n@@ -197,7 +198,7 @@ parse_range(const char *arg, uint8_t *min, uint8_t *max, uint8_t *inc)\n \t} else\n \t\tgoto err_range;\n \n-\ttoken = strtok(NULL, \":\");\n+\ttoken = strtok_s(NULL, \":\", &sp);\n \n \t/* Parse increment value */\n \tif (token != NULL) {\n@@ -211,7 +212,7 @@ parse_range(const char *arg, uint8_t *min, uint8_t *max, uint8_t *inc)\n \t} else\n \t\tgoto err_range;\n \n-\ttoken = strtok(NULL, \":\");\n+\ttoken = strtok_s(NULL, \":\", &sp);\n \n \t/* Parse maximum value */\n \tif (token != NULL) {\n@@ -225,7 +226,7 @@ parse_range(const char *arg, uint8_t *min, uint8_t *max, uint8_t *inc)\n \t} else\n \t\tgoto err_range;\n \n-\tif (strtok(NULL, \":\") != NULL)\n+\tif (strtok_s(NULL, \":\", &sp) != NULL)\n \t\tgoto err_range;\n \n \tfree(copy_arg);\n@@ -244,6 +245,7 @@ parse_list(const char *arg, uint8_t *list, uint8_t *min, uint8_t *max)\n \tuint8_t count = 0;\n \tuint32_t temp_min;\n \tuint32_t temp_max;\n+\tchar *sp = NULL;\n \n \tchar *copy_arg = strdup(arg);\n \n@@ -251,7 +253,7 @@ parse_list(const char *arg, uint8_t *list, uint8_t *min, uint8_t *max)\n \t\treturn -1;\n \n \terrno = 0;\n-\ttoken = strtok(copy_arg, \",\");\n+\ttoken = strtok_s(copy_arg, \",\", &sp);\n \n \t/* Parse first value */\n \tif (token != NULL) {\n@@ -266,7 +268,7 @@ parse_list(const char *arg, uint8_t *list, uint8_t *min, uint8_t *max)\n \t} else\n \t\tgoto err_list;\n \n-\ttoken = strtok(NULL, \",\");\n+\ttoken = strtok_s(NULL, \",\", &sp);\n \n \twhile (token != NULL) {\n \t\tif (count == MAX_LIST) {\n@@ -288,7 +290,7 @@ parse_list(const char *arg, uint8_t *list, uint8_t *min, uint8_t *max)\n \t\tif (number > temp_max)\n \t\t\ttemp_max = number;\n \n-\t\ttoken = strtok(NULL, \",\");\n+\t\ttoken = strtok_s(NULL, \",\", &sp);\n \t}\n \n \tif (min)\n",
    "prefixes": [
        "v2",
        "03/22"
    ]
}