get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2225575,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2225575/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260421075439.16696-10-ravi@prevas.dk/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260421075439.16696-10-ravi@prevas.dk>",
    "list_archive_url": null,
    "date": "2026-04-21T07:54:39",
    "name": "[v2,9/9] test: lib: add test of memdup_nul()",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "ef75ac913c270b1715cbb7fadbf414c3eeb9ae9f",
    "submitter": {
        "id": 89443,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/89443/?format=api",
        "name": "Rasmus Villemoes",
        "email": "ravi@prevas.dk"
    },
    "delegate": {
        "id": 3651,
        "url": "http://patchwork.ozlabs.org/api/1.2/users/3651/?format=api",
        "username": "trini",
        "first_name": "Tom",
        "last_name": "Rini",
        "email": "trini@ti.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260421075439.16696-10-ravi@prevas.dk/mbox/",
    "series": [
        {
            "id": 500753,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/500753/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=500753",
            "date": "2026-04-21T07:54:32",
            "name": "add memdup_nul(), use it and memdup() in a few places",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/500753/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2225575/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2225575/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=prevas.dk header.i=@prevas.dk header.a=rsa-sha256\n header.s=selector1 header.b=jLJKwMkt;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=prevas.dk",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=prevas.dk header.i=@prevas.dk header.b=\"jLJKwMkt\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=prevas.dk",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=rasmus.villemoes@prevas.dk",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=prevas.dk;"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\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 4g0F6n0Wqgz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 17:56:33 +1000 (AEST)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 059DF843C1;\n\tTue, 21 Apr 2026 09:55:27 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 52C20843AF; Tue, 21 Apr 2026 09:55:16 +0200 (CEST)",
            "from AS8PR04CU009.outbound.protection.outlook.com\n (mail-westeuropeazlp170110003.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c201::3])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 95D0484348\n for <u-boot@lists.denx.de>; Tue, 21 Apr 2026 09:55:12 +0200 (CEST)",
            "from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:681::18)\n by DU0PR10MB5995.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:3b1::12)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.32; Tue, 21 Apr\n 2026 07:55:07 +0000",
            "from AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n ([fe80::ebc6:4e0d:5d6b:95d8]) by AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n ([fe80::ebc6:4e0d:5d6b:95d8%6]) with mapi id 15.20.9846.016; Tue, 21 Apr 2026\n 07:55:07 +0000"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2",
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=WJfm7JOlAVrqPUSuNiuZAqWUxvOZOcrDX/gj9RkSDC1+q95UNdCaQWYBVKO0Hwo5tIqn+mRyGl+qLqthBjWGuWedz38Gj20Gm5XN5F5KnMCheyHhLWFSghz8yxWqYz6L5Gu1oBOhTWPSyv6Hunrc+xCRwbEvDwWAptgFR7nmoGObKV9katVndAhSm9c11vOQGjxh1eBE42BvMzBiFIdfw/AWiREwFAcnZUkASVRqsBrqdTTbfKhieBsINaX/Jv2orLEBytbI6AVvi0eNxGQNPzKVfpq6+oihjz5K/Rk7xDnaIR4ZqwFVpqb3t8DzBGzkTZrta6y9wDZXn6k8uxhvTw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=K/keIx7z1F0B1drgwEm6OixQNe4eXUt15QKTDn9F6hk=;\n b=edyuAdP/9niFMaMdIdj6BZhOTvspb5DiUt3qjKJT9BUlepPsSIJNHpWA5i9FPi9dkPL7294ruvjuouHo15EcocuM3KlNJFHNahoiTaJAW6EK6PE+gaO2QHgbYG7JdYL/IK/AEYlHj/Qxy5vPkU0QUqqSRJ9OBBSIx7d6eAjEy3NPM3Djy5ZTHgEHVE2C1Kb6g7VIfktYL7ruNKXMJ5CoTXpxdW/XhHvc0inDgQMBCw7z9vPs4gT3yw8awK7sA8RLsfSCHKFf4iPY4irGToAHOpY150X36OE+pYC78GqBhUHFsX1Xvjy25+4+WUT5kBXMzaZoyeh8xf0moTsauI70oA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk;\n dkim=pass header.d=prevas.dk; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=K/keIx7z1F0B1drgwEm6OixQNe4eXUt15QKTDn9F6hk=;\n b=jLJKwMktFYJimJGWo+bMEsyNAP0xEhJCh5+ny30crdp9Sspg0ZB8gu/x5LyLp/JV/Jdg+A/0Ub9fCGuYp3FxGeaI31AOVYcx8/VKEBim1T91I6DMQM9AvPvicn6cdff/sJQpcU+w7GX39lH0szm3ZCTXGYAB8UuoF+fkdWQCMbo=",
        "From": "Rasmus Villemoes <ravi@prevas.dk>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,\n Rasmus Villemoes <ravi@prevas.dk>",
        "Subject": "[PATCH v2 9/9] test: lib: add test of memdup_nul()",
        "Date": "Tue, 21 Apr 2026 09:54:39 +0200",
        "Message-ID": "<20260421075439.16696-10-ravi@prevas.dk>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260421075439.16696-1-ravi@prevas.dk>",
        "References": "<20260421075439.16696-1-ravi@prevas.dk>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "GVX0EPF0005F67A.SWEP280.PROD.OUTLOOK.COM\n (2603:10a6:158:400::3b7) To AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM\n (2603:10a6:20b:681::18)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "AS5PR10MB8243:EE_|DU0PR10MB5995:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "82d7328b-90b3-4fae-70ee-08de9f7b4df4",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|52116014|376014|1800799024|366016|38350700014|22082099003|56012099003|18002099003;",
        "X-Microsoft-Antispam-Message-Info": "\n X4ZlggQqqLw+KjgZ0h+RDDxtB9Ez4AJeyqthv8gkKo7V90wKfw7v9uYLy8VpLC1veBNp+r3uxe8DFzA8sikvtmm6FQVIlTp6TYKZ3sqvCm+8z04WshgIdY26G1IuxDLrcpU8VodTmBXOlGAwivd4zKiOAAuhxLb7A7l04ePBVFY6xxQr2BX5jeLa8pkmWvYFh9FF5ylNFfw2kJ1NHN47pCI89TXy266ULOIkOuvg7E1IwDv/RZDy0A5F7KO7AmODXpKR5Wow3Chq0OHYEL3AfZzrnRGTA2vjpF7fTtYQRdMjd2/GhHJgdADApSi136a19/T/BZhRo9CMK4tXf/IvFi6k2YX2cHEaonPmzdzLD9endHw8E3JuAV2QQ009MU107uB5hvPkSEK3UsBHLM43NteM960KKfveoaO6rFvEcPID6JG0tnPkKeKU0OUSDEEbDHsj1ZllipeDKseJkGEsNUPlKRN3un+CTl3a+rRxwkH/mgUNB8px8rI+ybM5cs7XU2xMB1EYoisaxPO2G3G2uScQlyWfFuzAut6UReBQaC9H35TJoIhraN2bjgqk5aPtPRgQLeiyQevQ8JYl/2FiQMlbPwbIxt2YaO9DOsC8ntPgp3+3FvAalhJ8qhx56bVUcstcqxdyRarhSNNiuPG6DJmTxCrJwx2gsaFgp/OJSlFn9SvbwORbIXp8LIBYppZTRWrE005Wok7MkSsN+QceHm7qAjmJ3aohJ3q7t36it0RoAO2Om/g+MipTaw5HGejQwcynh1fp2wl4LPcRaszdDZ5qtgBUXxQiFgT4+7J60Qo=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE;\n SFS:(13230040)(52116014)(376014)(1800799024)(366016)(38350700014)(22082099003)(56012099003)(18002099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n xQeBh45N7rpxcH+UYmMZOKZj9Dl6EmrQ+eRpZLrWB/eyVsoS5NCigr9xi6h8BiD9CL4UALVhwJidFbbWi7+fiUctJ/fHun5WYgr2Ch4cg7b5+bDjqmfDdFru43Cc0L3TzuWjzjcyp6ttA0hgq3ojf7sbCXCA7YBPOPxPDyapxiq+BT9Aq+8xqWr6rZpMUz2V2MwWS7CFTHH4E0rQ+paTzDlmOP3aX+v8+x0AA6DGP7Jm5PBrFyhZHy0qjfca2t756Dibxr+1xqsCD1vk3NeD9qpaKndCC8YfgRQE9Gd2jbd4A2VASCgdoO5wsf8d8gRu3RWJ5+zMtQCp6KX4eTotutL/vJHBFv2RZPtwnP49GCsBqC49RP1V91n7bkuX1QbvGKsJW0rWgSVvqcR04IHsl2yFyhAo5MyJS5wNWuY1i8nRrhdd6NJ0zEyDs+HZbtmjATtZmC/QkrdzUA2ZZvRR+jIu/CMsgvR5Y8ErVVKV5IT355orAe7L+WpnZyx7kvSc1vXiN13EW110weAIYhHlru0v4eaLKUx7MT3F9sRh83dTed7GpbF8E6I7aqzV7/CTpjfKC7gJiuqWqsUzBw4nbmrBKg+ERAMcvE3uCzkezCeMKaJfYxnkqOVaZIzVtFQZTo4ziVsqL5mmuAwrbCJuLGslnA6ABPA3D3nHfpQ274mmaKbKkXvOiqUCBEGI5xlCw1sq3eAWjuXlbMALySs9kfC6Ib1cgr9YA5c9O2FFCgzH4Lly2UPYYT+LtP1WT9kzaha2Wd2Fj9ucTzWI6hbkQYgxeDCS/TZd3f4LTVTyxTSxydodcpGGd1BXexvD9WWJl59Xn9ysT8bfe9qpgha1dpDvqhz9Jc3H16wlu4uLx3ETgeUXjOr0JmNukLxBUYVSKB5++M7xrzGdZDzO8vr4EZ5GuZVLImTJso62tpzAzT7GJjKw4W4t23AyUlUfU9BsyHd6RHhy7+69ixoSN/S7CGEvKa7LEFw+ZX2SnrTLv8zO8ROZW5awA6CldJZ5QjQrMo30/7pdClKg2PJ547g/IbPebSPOvFFGXrwvsCaLWTdZXPYbJBkCKQV0PVaNJPb2lq9M47XMscqgD5Yq70qLE118eUgd6yztbyUZH2yJ82A5jTY22VDsxNeuwydl+GdPGQvELNp8rv2oOn0N1nM3fvA30rwfJGmHcpb+KnXYk+VGmfzXJpltYy/ghLpBaMC7fIrtTzNSg4EDgUbeG5+z0uRjEvR9NSsy2QvGOApGshK/jWRyWCrSKYwOe3fWLCMb3cJpG7q1u2Cet9UM4sy9y8UXrc9lJAWRvj1TT7NAB+UehsUQ58JUGRD767W935fC8i125UPtCvRl/iaVTJMF8r1uwQVizZLz0Dyxjw65RUyGkoKE9ntT4bR+BbPZ9K6dXCpLAG15vwwDdeETg6LI2DBkW4x70KrHEete7A8dyImdOcqNQFQW53b9Eh5jra5ijrpyUKrrPYmSucuVpcsXvlmTTGXThq+8B8/UG/Gh7kCNhDiaOtm26efKHURWr6Mr9Is4JYf1LQ3VxSfH7WRna18qLbPpFv60eGrcAMn/XG4gVpc1IgsI1wLcM4JKnPTZZuqtuyTqbJUD4558nvTyqrKBg7ZZDNsjraYWTX0pv3nZjl4z+s45lsc9dWB8t3EUjwtnBxvgW0kQCMJN63joJohaE5VSKc5mGr7tLBnPdxFZ31K+A73vc5bOs9d4b5Gki4OwNcBA/GzibWReJr8BJkrrBj/losD/MnKiXIGcju4=",
        "X-OriginatorOrg": "prevas.dk",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 82d7328b-90b3-4fae-70ee-08de9f7b4df4",
        "X-MS-Exchange-CrossTenant-AuthSource": "AS5PR10MB8243.EURPRD10.PROD.OUTLOOK.COM",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Apr 2026 07:55:07.2147 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "d350cf71-778d-4780-88f5-071a4cb1ed61",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n 4yex/LPHYK6NwOphaQyfkBOtNw4oByd/lzMh9kAcYHntL+CycOd+RYlJ4A/e1AunZ+f8ctZaWzvaMbNE/MnRBcW5ZhwNmjymK9rT57VPylw=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DU0PR10MB5995",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "Add a very basic test of the new memdup_nul() helper.\n\nSigned-off-by: Rasmus Villemoes <ravi@prevas.dk>\n---\n test/lib/string.c | 34 ++++++++++++++++++++++++++++++++++\n 1 file changed, 34 insertions(+)",
    "diff": "diff --git a/test/lib/string.c b/test/lib/string.c\nindex f56c2e4c946..db6f28dbfdf 100644\n--- a/test/lib/string.c\n+++ b/test/lib/string.c\n@@ -223,6 +223,40 @@ static int lib_memdup(struct unit_test_state *uts)\n }\n LIB_TEST(lib_memdup, 0);\n \n+/** lib_memdup_nul() - unit test for memdup_nul() */\n+static int lib_memdup_nul(struct unit_test_state *uts)\n+{\n+\tchar buf[BUFLEN];\n+\tsize_t len;\n+\tchar *p, *q;\n+\n+\t/* Zero size should return a buffer containing a single nul byte */\n+\tp = memdup_nul(NULL, 0);\n+\tut_assertnonnull(p);\n+\tut_assert(p[0] == '\\0');\n+\tfree(p);\n+\n+\tp = memdup_nul(buf, 0);\n+\tut_assertnonnull(p);\n+\tut_assert(p[0] == '\\0');\n+\tfree(p);\n+\n+\tstrcpy(buf, TEST_STR);\n+\tlen = sizeof(TEST_STR);\n+\tp = memdup_nul(buf, len);\n+\tut_asserteq_mem(p, buf, len);\n+\tut_assert(p[len] == '\\0');\n+\n+\tq = memdup_nul(p, len);\n+\tut_asserteq_mem(q, buf, len);\n+\tut_assert(q[len] == '\\0');\n+\tfree(q);\n+\tfree(p);\n+\n+\treturn 0;\n+}\n+LIB_TEST(lib_memdup_nul, 0);\n+\n /** lib_strnstr() - unit test for strnstr() */\n static int lib_strnstr(struct unit_test_state *uts)\n {\n",
    "prefixes": [
        "v2",
        "9/9"
    ]
}