From patchwork Tue Jul 4 13:12:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiang W X-Patchwork-Id: 1803220 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=PsFpsRO5; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=126.com header.i=@126.com header.a=rsa-sha256 header.s=s110527 header.b=Cl8SPlCc; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QwNs05mSKz20Pf for ; Tue, 4 Jul 2023 23:28:04 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CAhlIpz6f1SJhH0HGIXSBFWriGi8NVSvisEwYUaN+9A=; b=PsFpsRO58iv8YS 2tpVCTpO57MhzcZlpsDQv521QsdtQ5y5wf8wkdW9N8zc8OZnrDoRtIuBiJFch5fyao1z6UVPIcxyz Iu0a1J0sLGxFnw/KSlu/NE6Sl/AfA0JABGSTJ6aph9fTUbP60w7E5hxMtxMYgF0MNQxzceG6uVAB5 k6e0vJiGDhQ+mXiowge8LhtrgJ/XZOIE+JJAYu8xlYigzI3j3YPdKk2XD3xW2NI8A4HHIXkCP0L5i sHZWBk3nUIjQWDCRN+YHn3lE0+5GYZ+XQboDYiFrYmZlNH3hTZAdu5SZzXVvL0kh2jgMafh1Bd/vv RsIfQtBJssCKLYYiaWkA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qGg4G-00DOWq-1N; Tue, 04 Jul 2023 13:27:44 +0000 Received: from m126.mail.126.com ([220.181.12.37]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qGg4D-00DOVe-0w for opensbi@lists.infradead.org; Tue, 04 Jul 2023 13:27:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=flfM8 3tF+O/16Lm+O1snzNukZpK5MDrJYOsdsixqPCY=; b=Cl8SPlCcoUTfiG3VUJlXd U+4NYsXa4ubPxBmRgiDtW2j+JLX85RO2fseVgW4crFJWwY2tKps7TzEdyW4IbW55 dsqDFa8o6hUf6ivEziKid+jH55wYJrCP4B4SLut5Y7q3p0sZB8vuvE/HRrtUQDY8 Gd3NIcYVRpj+YRfj9z16+c= Received: from x390.lan (unknown [58.247.180.222]) by zwqz-smtp-mta-g1-0 (Coremail) with SMTP id _____wCXJ8CyGqRkGritAQ--.14207S11; Tue, 04 Jul 2023 21:12:22 +0800 (CST) From: Xiang W To: opensbi@lists.infradead.org Cc: Xiang W , anup@brainfault.org, jrtc27@jrtc27.com Subject: [PATCH v7 09/11] lib: sbi: Fix printc Date: Tue, 4 Jul 2023 21:12:06 +0800 Message-Id: <20230704131208.465914-10-wxjstz@126.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230704131208.465914-1-wxjstz@126.com> References: <20230704131208.465914-1-wxjstz@126.com> MIME-Version: 1.0 X-CM-TRANSID: _____wCXJ8CyGqRkGritAQ--.14207S11 X-Coremail-Antispam: 1Uf129KBjvdXoW7Gw15AFWrGw48GFykGF1kAFb_yoW3KFXEya yvyas8GrZ8AayYq3sFyrnYvrsFyw4xurn7WF15tr43Cry3tr4UGryjq3s0gFW8Xr47Cr9r Aa1j9r15Crya9jkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7sRG_M37UUUUU== X-Originating-IP: [58.247.180.222] X-CM-SenderInfo: pz0m23b26rjloofrz/1tbi1xqiOl53bj3WxQAAs8 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230704_062741_669047_77013551 X-CRM114-Status: UNSURE ( 9.05 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Because *out needs to reserve a byte to hold '\0', no more characters should be added to the buffer when *out has one byte left, and the buffer size *out_len should not be modified. this patch prevent [...] Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [wxjstz[at]126.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Because *out needs to reserve a byte to hold '\0', no more characters should be added to the buffer when *out has one byte left, and the buffer size *out_len should not be modified. this patch prevents the correction of *out_len when *out_len is 1. Signed-off-by: Xiang W Reviewed-by: Anup Patel --- lib/sbi/sbi_console.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/sbi/sbi_console.c b/lib/sbi/sbi_console.c index 43870b8..af5e94b 100644 --- a/lib/sbi/sbi_console.c +++ b/lib/sbi/sbi_console.c @@ -142,10 +142,9 @@ static void printc(char **out, u32 *out_len, char ch) if (!out_len || *out_len > 1) { *(*out)++ = ch; **out = '\0'; + if (out_len) + --(*out_len); } - - if (out_len && *out_len > 0) - --(*out_len); } static int prints(char **out, u32 *out_len, const char *string, int width,