get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217361,
    "url": "http://patchwork.ozlabs.org/api/patches/2217361/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260328051552.29343-1-S4210155@student.rmit.edu.au/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/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": "<20260328051552.29343-1-S4210155@student.rmit.edu.au>",
    "list_archive_url": null,
    "date": "2026-03-28T05:15:48",
    "name": "board: nanopi2: fix bd_update_env() cmdline buffer overflow",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "316e40e2bb104dba88535d5c745b9a24aa0139ce",
    "submitter": {
        "id": 92995,
        "url": "http://patchwork.ozlabs.org/api/people/92995/?format=api",
        "name": "Ngo Luong Thanh Tra",
        "email": "ngotra27101996@gmail.com"
    },
    "delegate": {
        "id": 3651,
        "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api",
        "username": "trini",
        "first_name": "Tom",
        "last_name": "Rini",
        "email": "trini@ti.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260328051552.29343-1-S4210155@student.rmit.edu.au/mbox/",
    "series": [
        {
            "id": 497852,
            "url": "http://patchwork.ozlabs.org/api/series/497852/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=497852",
            "date": "2026-03-28T05:15:48",
            "name": "board: nanopi2: fix bd_update_env() cmdline buffer overflow",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/497852/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217361/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217361/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 (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=ppeCKt2a;\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=none dis=none) header.from=gmail.com",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.b=\"ppeCKt2a\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=ngotra27101996@gmail.com"
        ],
        "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 4fjT7F6PsDz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 18:05:45 +1100 (AEDT)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id ADF9C83C14;\n\tSat, 28 Mar 2026 08:05:42 +0100 (CET)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 5C79583C14; Sat, 28 Mar 2026 06:16:07 +0100 (CET)",
            "from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com\n [IPv6:2607:f8b0:4864:20::52f])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 886758394E\n for <u-boot@lists.denx.de>; Sat, 28 Mar 2026 06:16:04 +0100 (CET)",
            "by mail-pg1-x52f.google.com with SMTP id\n 41be03b00d2f7-c6e2355739dso1179699a12.2\n for <u-boot@lists.denx.de>; Fri, 27 Mar 2026 22:16:04 -0700 (PDT)",
            "from localhost.localdomain ([118.69.37.28])\n by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-c76916cd89esm716033a12.8.2026.03.27.22.16.00\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Fri, 27 Mar 2026 22:16:02 -0700 (PDT)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_GMAIL_RCVD,\n FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1774674963; x=1775279763; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=V+UPu5cVM/AXy3VMCQunHsvKjHNgczRjnCcuiElLfl4=;\n b=ppeCKt2aVx3yiUgp4rG+RKiR0vP5RIlNmE6Yf5J8AGlB69sK03ixPzH12ElGP97CPH\n 17YvxCHWqtl4zTyTC7cZ6cJH00zq067MpkdzvCqAZuR5lMpTC/ttjKxwg8gQiOpgCKut\n ZTDe4WrZCdXOGFp3TNfwpx+agQtrYI65zzLuXff+iTfv1NwOKLru2V7MiA8coTOLNK8g\n hIiN0RNXiy3/KxDtNHjIpe5A0fBitecY2eeF/w8k2Kj98B4ZxnlHTrSXuRCcx/BPcIEv\n UKhi5510HW1iXB1ZHvMCwcsyPBySz/WCOUefawW4CdUPgbUSpKYBURnA3OJZYeJ8GQjX\n DfaA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774674963; x=1775279763;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=V+UPu5cVM/AXy3VMCQunHsvKjHNgczRjnCcuiElLfl4=;\n b=Caqvg6NyjlikuhfaC2rGAmI2Hon7VW4sg6kfn+AvsLb2S3YP7hkHOPs1f5WkaHpYr8\n u/IQgzILNEtqtDh/0ZBQUD9ewJvvCLlviDp46b21dvhmpRtk9g4uhnJWN4u4txWImbgd\n wwwVkRLcJL9tMtrtkej0XYoX53LRu/SoLWnsHRLl0G+7PQgwqLqIdKdCMb3PwCug8c9h\n R5MU0e7nqEEUtqs1S4XusFfbl2FqqgdYD/v94QXoQrTITQJUjFjUiPYAhYnzP0rse2C3\n QQG/plceIWoTKZr9L3y/pzaqjf/EomrOUcRPE0ild4x1EyxC7UEqCTeMKGRA+NYPdsQC\n uw1A==",
        "X-Gm-Message-State": "AOJu0Yyg2ZNXQb1AY2z/k92Ey1+D1Nsog2+lVXPEHbluhOfsa/6/e4KX\n +Vl9uIE2qervSNhiLYTPl4bJAbQirOaFPzt/HxK6lvrBC/bOerbxFTLeEehYQK8I",
        "X-Gm-Gg": "ATEYQzxiek3p4Vzyu/co4u6dzcxXQs6biP7KtowrcGwIUY7Ro4LexC/8nZ/9IN5dKl7\n +x4e01yGqBEoyM3VhhC8Wf3m+soymqu5eD4/kylXfk9jvLNNQ/YPV48Okigh56OiFlNQVzbJL0R\n W//1r0QDHbuT3q3tsfhNuOb3vj+yGaULoiRzoOfdpsMvdu2oiex//UG6aQnrFnsf1VdCpD2R5nb\n RbOLOIeW+5KRmBprqUqwFvvriadM8XwXIxiNlRXrGyfJvnZ6wBxy30UKjVuluq8b+z8O4PPlRmV\n FikenBlh99ht0zdiAC0piJYMBKcnrNKigJGbIQ9PW62X/MsbQfg+ubHgT60wNr4r4tq1RPl/hKp\n OUWfQOQoyxAZBwXXITaotJzvEBhHdjxbbdJa7fzwtnnGBOt6mAVTObSlIteU/wVa94/UI9o1e2J\n 32tsYqTd/FRY4/Dh3XEgJpJUZyunctmPC3Dd5owqOR56dQ0Fr3/HepEoo99/pKiKPA8lKMvYo=",
        "X-Received": "by 2002:a05:6a20:72a3:b0:39c:12c5:c6f5 with SMTP id\n adf61e73a8af0-39c87915721mr5811663637.18.1774674962564;\n Fri, 27 Mar 2026 22:16:02 -0700 (PDT)",
        "From": "Ngo Luong Thanh Tra <ngotra27101996@gmail.com>",
        "X-Google-Original-From": "Ngo Luong Thanh Tra <S4210155@student.rmit.edu.au>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Ngo Luong Thanh Tra <S4210155@student.rmit.edu.au>,\n Stefan Bosch <stefan_b@posteo.net>, Tom Rini <trini@konsulko.com>",
        "Subject": "[PATCH] board: nanopi2: fix bd_update_env() cmdline buffer overflow",
        "Date": "Sat, 28 Mar 2026 12:15:48 +0700",
        "Message-ID": "<20260328051552.29343-1-S4210155@student.rmit.edu.au>",
        "X-Mailer": "git-send-email 2.53.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Mailman-Approved-At": "Sat, 28 Mar 2026 08:05:42 +0100",
        "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": "Replace unbounded strcpy()/sprintf() calls with snprintf() and\ncheck the return value against remaining buffer capacity at each\nappend step. The previous size guard did not account for\nsubsequent dpi suffix, remaining bootargs tail, and bootdev\ntoken appends, allowing overflow when those later writes exceed\nthe remaining space.\n\nFixes: d1611086e005 (\"arm: add support for SoC s5p4418 (cpu) / nanopi2 board\")\nTo: u-boot@lists.denx.de\n\nSigned-off-by: Ngo Luong Thanh Tra <S4210155@student.rmit.edu.au>\n---\n\n board/friendlyarm/nanopi2/board.c | 49 ++++++++++++++++++++-----------\n 1 file changed, 32 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/board/friendlyarm/nanopi2/board.c b/board/friendlyarm/nanopi2/board.c\nindex 4dff32e10d6..eb10cd5143d 100644\n--- a/board/friendlyarm/nanopi2/board.c\n+++ b/board/friendlyarm/nanopi2/board.c\n@@ -328,6 +328,7 @@ static void bd_update_env(void)\n #define CMDLINE_LCD\t\t\" lcd=\"\n \tchar cmdline[CONFIG_SYS_CBSIZE];\n \tint n = 1;\n+\tint ret;\n \n \tif (rootdev != CONFIG_ROOT_DEV && !env_get(\"firstboot\")) {\n \t\tenv_set_ulong(\"rootdev\", rootdev);\n@@ -347,49 +348,63 @@ static void bd_update_env(void)\n \telse\n \t\tcmdline[0] = '\\0';\n \n-\tif ((n + strlen(name) + sizeof(CMDLINE_LCD)) > sizeof(cmdline)) {\n-\t\tprintf(\"Error: `bootargs' is too large (%d)\\n\", n);\n-\t\tgoto __exit;\n-\t}\n-\n \tif (bootargs) {\n \t\tp = strstr(bootargs, CMDLINE_LCD);\n \t\tif (p) {\n \t\t\tn = (p - bootargs);\n \t\t\tp += strlen(CMDLINE_LCD);\n \t\t}\n-\t\tstrncpy(cmdline, bootargs, n);\n+\t\tret = snprintf(cmdline, sizeof(cmdline), \"%.*s\", n, bootargs);\n+\t\tif (ret < 0 || ret >= (int)sizeof(cmdline))\n+\t\t\tgoto __exit;\n \t}\n \n \t/* add `lcd=NAME,NUMdpi' */\n-\tstrncpy(cmdline + n, CMDLINE_LCD, strlen(CMDLINE_LCD));\n-\tn += strlen(CMDLINE_LCD);\n+\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \"%s\", CMDLINE_LCD);\n+\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\tgoto __exit;\n+\tn += ret;\n \n-\tstrcpy(cmdline + n, name);\n-\tn += strlen(name);\n+\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \"%s\", name);\n+\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\tgoto __exit;\n+\tn += ret;\n \n \tif (lcddpi) {\n-\t\tn += sprintf(cmdline + n, \",%sdpi\", lcddpi);\n+\t\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \",%sdpi\", lcddpi);\n+\t\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\t\tgoto __exit;\n+\t\tn += ret;\n \t} else {\n \t\tint dpi = bd_get_lcd_density();\n \n-\t\tif (dpi > 0 && dpi < 600)\n-\t\t\tn += sprintf(cmdline + n, \",%ddpi\", dpi);\n+\t\tif (dpi > 0 && dpi < 600) {\n+\t\t\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \",%ddpi\", dpi);\n+\t\t\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\t\t\tgoto __exit;\n+\t\t\tn += ret;\n+\t\t}\n \t}\n \n \t/* copy remaining of bootargs */\n \tif (p) {\n \t\tp = strstr(p, \" \");\n \t\tif (p) {\n-\t\t\tstrcpy(cmdline + n, p);\n-\t\t\tn += strlen(p);\n+\t\t\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \"%s\", p);\n+\t\t\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\t\t\tgoto __exit;\n+\t\t\tn += ret;\n \t\t}\n \t}\n \n \t/* append `bootdev=2' */\n #define CMDLINE_BDEV\t\" bootdev=\"\n-\tif (rootdev > 0 && !strstr(cmdline, CMDLINE_BDEV))\n-\t\tn += sprintf(cmdline + n, \"%s2\", CMDLINE_BDEV);\n+\tif (rootdev > 0 && !strstr(cmdline, CMDLINE_BDEV)) {\n+\t\tret = snprintf(cmdline + n, sizeof(cmdline) - n, \"%s2\", CMDLINE_BDEV);\n+\t\tif (ret < 0 || ret >= (int)(sizeof(cmdline) - n))\n+\t\t\tgoto __exit;\n+\t\tn += ret;\n+\t}\n \n \t/* finally, let's update uboot env & save it */\n \tif (bootargs && strncmp(cmdline, bootargs, sizeof(cmdline))) {\n",
    "prefixes": []
}