[{"id":3680104,"web_url":"http://patchwork.ozlabs.org/comment/3680104/","msgid":"<CAFLszThADZT1+uHr2GVXtj+FQtt4SAtHtvDTDVcmh0ybZ0gTSA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-21T22:45:56","subject":"Re: [PATCH v2 5/8] cmd: ubi: reorganize command messages","submitter":{"id":6170,"url":"http://patchwork.ozlabs.org/api/people/6170/","name":"Simon Glass","email":"sjg@chromium.org"},"content":"Hi Weijie,\n\nOn 2026-04-21T08:35:39, Weijie Gao <weijie.gao@mediatek.com> wrote:\n> cmd: ubi: reorganize command messages\n>\n> This patch moves normal subcommand messages into the main command function.\n> This will allow current and potential api functions being called with clean\n> output.\n>\n> A new function ubi_require_volume() is added for finding and printing error\n> message if volume not found. The original ubi_find_volume() will be silent\n> for being an api function.\n>\n> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>\n>\n> cmd/ubi.c | 92 ++++++++++++++++++++++++++++++++++++++++++++-------------------\n>  1 file changed, 65 insertions(+), 27 deletions(-)\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -514,7 +518,7 @@ int ubi_volume_read(const char *volume, void *buf, loff_t offset, size_t size)\n> -     vol = ubi_find_volume(volume);\n> +     vol = ubi_require_volume(volume);\n\nWon't this print messages, e.g. ubi_volume_read() is also an API function?\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -402,7 +406,7 @@ int ubi_volume_begin_write(const char *volume, const void *buf, size_t size,\n> -     vol = ubi_find_volume(volume);\n> +     vol = ubi_require_volume(volume);\n\nSame issue: ubi_volume_begin_write() is an exported API function.\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -806,31 +806,63 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n> +             if (argc == 3) {\n> +                     struct ubi_volume *vol;\n> +\n> +                     vol = ubi_find_volume(argv[2]);\n> +                     if (!vol)\n> +                             return 0;\n> +\n> +                     ret = ubi_remove_vol(argv[2]);\n> +                     if (!ret) {\n> +                             printf(\"Removed UBI volume %s (id %d)\\n\",\n> +                                    vol->name, vol->vol_id);\n> +                     }\n\nUse-after-free: ubi_remove_vol() frees the volume structure, then you\naccess vol->name and vol->vol_id  - please save the vol_id before\ncalling ubi_remove_vol(), or print the volume name from argv[2].\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -877,7 +909,13 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n> +                     ret = ubi_volume_read(argv[3], (void *)addr, 0, size);\n> +                     if (!ret) {\n> +                             printf(\"%lld bytes read from volume %s to 0x%lx\\n\",\n> +                                    size, argv[3], addr);\n> +                     }\n\nWhen size is 0, ubi_volume_read() uses vol->used_bytes internally, but\nthe success message prints 0. The old message was printed inside\nubi_volume_read() after size was adjusted, so it reported the true\nvalue.\n\nRegards,\nSimon","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=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=RcltHXmF;\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=chromium.org","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=chromium.org header.i=@chromium.org\n header.b=\"RcltHXmF\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"],"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 4g0csS06q4z1yHB\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 08:46:19 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 2B1488412A;\n\tWed, 22 Apr 2026 00:46:12 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 6775D84178; Wed, 22 Apr 2026 00:46:11 +0200 (CEST)","from mail-ed1-x531.google.com (mail-ed1-x531.google.com\n [IPv6:2a00:1450:4864:20::531])\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 5CD1A83E76\n for <u-boot@lists.denx.de>; Wed, 22 Apr 2026 00:46:09 +0200 (CEST)","by mail-ed1-x531.google.com with SMTP id\n 4fb4d7f45d1cf-6634bb959a2so6635576a12.1\n for <u-boot@lists.denx.de>; Tue, 21 Apr 2026 15:46:09 -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=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1776811569; cv=none;\n d=google.com; s=arc-20240605;\n b=fXp9aFAVQoVjh/m2FfEb3Q+0XmWYE+MddKTwQl+MmDtE9jniEo8MXQEJQ1Z2pv5nk7\n b7DI/xtC5IdRWBp/3Ih2OhdyzJTNVMODLopw8JX3H38cakeDVFsBTp25kRGoWrrd8eYL\n q/LKHJ6w1u7INWFE3nkBZvu5uS1Wqr7qaHd6lyKs7PFMJtgghCyHpVJYhX1yjARasfaz\n 3wXxf9oU2QWXDhhMYeyCsOh8r0DTNNYzxEJ2xiCzdOVKrDhpf5BIElJtZq7rCXokvmtS\n kobV1uwdKoiQKX1dVZMb973EudLyP4sTt5CLgVIV/64zPxMPV2GD8v2HQk20C5SHholX\n zU6A==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=N0QiTwD/R34wgP0yvMsAMqCDZzuC9CkLTuUHknMez3w=;\n fh=fJAGB8LvxCJalDRE+ziaXIW21+gD5jSCb0B1QEwHsvE=;\n b=MPNleCnA198XkPyFwqq921elZ7tFaxEJd5GpkblanOcf//Sp12SviwgXPOQ24h6iAZ\n xCaTZN5lswyOYtoqPwc5BXPTEuWAoTMYMPScCZA5gBlhlioUpdGoo5IOZSEM/zmRMTAp\n 8QALOfLelHnNK8TAP0wJCXMDv31tVbBhkU8IxpB4PvS55yukKT5a2+kDvK2MpTLbJXH0\n QhF2J+ReruXpYKxmiMAcS/RLKmVFeRCxqq+frIqhf35SA0OsstTspvbdOYJhDj2HVpuO\n IMtDqCHZ5To3+uGXxNVj9OdZ3LslkPw5KW0rlNDE+ySL7h8Hcdc3tMjT4f+JJUck7Lpe\n +cew==; darn=lists.denx.de","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1776811569; x=1777416369; darn=lists.denx.de;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=N0QiTwD/R34wgP0yvMsAMqCDZzuC9CkLTuUHknMez3w=;\n b=RcltHXmFhTCYbX2Gv9eIWpUpm5aog+f/jVnaXRU4xjVD9CMnXrn2elHoKdtA3m23W8\n P2/gYt31Ldjb5F0GVHbLR59K6vrtM5sfenYB5JbU9LFnMJtGfye1UxmOVfREil5TDgMX\n k8qm8CGxXAQrqH52i2pDf7O+61DxGCLatLjdY=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776811569; x=1777416369;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=N0QiTwD/R34wgP0yvMsAMqCDZzuC9CkLTuUHknMez3w=;\n b=lthBDtVnGursAMtmkPu/9Te/D52BkcYyQYA8iAzIa5NkemmK2znUsaEjD/ZceHKqBQ\n r5n4UEd5+N/8kFBeh9MqHZ1Yf7aqDSbiUjXFo2cZBr0fLUI0cyesml3glvMJnPrU0tmj\n kWPbfNCMs9wEIkxbg9o37/1Kdj/DUoOZm3wsH3Q10wxpjn+awJYQkFHHpYyxx5YiEhhi\n A40TcMd7Wb5wkn9JMsjclRBNj01lT36d0hvCrjnjLovfFgWAK8uztO299HhjM/vkoNsc\n 7sNON/novLC3Hi5xYxJADDSWG/c5z5EYDQcona+/jdy8PtZz8CjCDH79wvGl9OW+GbRe\n YFfg==","X-Gm-Message-State":"AOJu0YycnsSmqPSuHX+Dwnypby0Hi+bhTdS52Z019W2t+rO4fyPG7drR\n kYwswAeg0HOJDw9nZLM8ryMcVoOAQmLpa6aDUwFhphcR6JkTEaIWS0mVYfQYvk/wIRQr36xazop\n /yi1ZoYKxwDbCivRnuQLZKjTOV8dNmNylKUKKwQwVrz3XTxf8FSqltQ==","X-Gm-Gg":"AeBDieugiQgeZ1SD6yefmOAXsvBYpnGy//AIPaBSUSIkpVyzHmPGrULGS1oXr5MDfcm\n 4mO/dwm0I84QWNChaV/AjwYI60XAO3oFzY2KyuSU3tIumz9CaOQMF2NVYrF6Q72DiDg/J7lOT0i\n Ngs/1vamKMbiQ1eF2IH8ydikowe6f6qukcmm9X6q5xF4N+tGLM1lzQvRAGa74D4c2L4KIJtz4av\n 6Co6fv4qfAw7Xpkr5hvxWt5qIUG+FDMq4i4Sy2iqWzhjhIVoMcp2kKzke9nfPOtX95W9wHWJP2N\n 4VjG+RdP3TxfRa0XvozH","X-Received":"by 2002:a17:907:da7:b0:ba7:62f:9fa4 with SMTP id\n a640c23a62f3a-ba7062fa21cmr540411566b.6.1776811568638; Tue, 21 Apr 2026\n 15:46:08 -0700 (PDT)","MIME-Version":"1.0","References":"<cover.1776759754.git.weijie.gao@mediatek.com>\n <fd67a0a7da68717a551f6c6153b56c8719fe2022.1776759754.git.weijie.gao@mediatek.com>","In-Reply-To":"\n <fd67a0a7da68717a551f6c6153b56c8719fe2022.1776759754.git.weijie.gao@mediatek.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Wed, 22 Apr 2026 10:45:56 +1200","X-Gm-Features":"AQROBzDSQqfz28zlM_MtNxa64dGUVi_5iTx6TSHR8uHXoIlpVfGvWOVeQPStS9M","Message-ID":"\n <CAFLszThADZT1+uHr2GVXtj+FQtt4SAtHtvDTDVcmh0ybZ0gTSA@mail.gmail.com>","Subject":"Re: [PATCH v2 5/8] cmd: ubi: reorganize command messages","To":"weijie.gao@mediatek.com","Cc":"u-boot@lists.denx.de","Content-Type":"text/plain; charset=\"UTF-8\"","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"}}]