From nobody Sat Jun 14 12:42:40 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bKGBS6wglz5189b; Sat, 14 Jun 2025 12:42:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bKGBS4LpLz3GPD; Sat, 14 Jun 2025 12:42:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749904960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Qcbxu13zGTvrrpGYQM+MUFCsXE2p73Ah6Vp0+Zju72A=; b=JKtxB+8Pmd35J7c6zb1ECf9Cep0yHUG97XDdHqlq5ocS/9vKoIlRb22QbgYGYKiaLpHffI Aus1CD8dXktadBwuTHvKzLd/vownD/dhUpMm8t/bxS6DZSXFXo2tMrkbbSTsXfk8YPYJzQ tUDh49yXKtDp4uVRRRDuvhLjAdHRk2CI5AxZfXZcnlDHGZc/Vbt5pvwtmb2IMxrTmPrNmU cRPGvD+wG8Nxi0z94NdDpfBSHBZKQl+ByNcVb57TWOd2hF+HYbf8C4CWvqRU6/wqMepEKd b6uVGnKBAwT7QL73PjadYrbj5PHtBX0dCKLYsEF5rQveAinsIX9QGQrWweiVFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749904960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Qcbxu13zGTvrrpGYQM+MUFCsXE2p73Ah6Vp0+Zju72A=; b=dU49Z3J6uzLJTzQdU734910w9Yv2bStOCP588HEXrsnxG9RyfunlO0W/nyaXuwIgn9oPQU lQiobIRqIC7RM5S6/x2pGg0L05AJu48L17cgbiFxwb5Tk4tAHkfhLlMtQzhLVJXaVfNUF3 IR9ggzpujq2F4DMiFGo7PWmxMrIeJE8D3pNxAca2X04NH2AnP+/bacGh9nJT+Ab+7p0zE/ twgtPTBsePcNI9q3vurK92xphlwum9qoGfmq2KDnvKIlbMyTW5sTVhnURSSpzQcX0Yjcqe MqKlG0aaiQCJeDSlgfPO0K/0talFhWLRoPSBDIg3237t1Caq7LAZufeBuC4JcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749904960; a=rsa-sha256; cv=none; b=A8AP7qyor/zU9JJBfmxjhaNwXATV8mF+jxNT0gVFkSW6dmuneXVKgKanN4/Jz2i3GdqBXf DlIhUGsoXcSiWrUP+yQg/eNj7CQwgD4iY2bED0jCO4hjykBooFZ7Q0xwAuccp4krHHIb3O yTO//yz77MspDCDslXTu1vGm4Ye3vKZLjFJavGIMMJiJQ4mPOhOzd4RSajEKzrNMVLq2Mm uQQuawevmhqaQ7ArqdzMLXukSl7YoSgfYuP4eg8PMeWnV/pb4G/5w8v+gDVZ1hiKyLafvS JFnri0MD0p93w97ZUmBZxOKn1SR03TdjdZ/NGqlOUh0PyDk5EZ6mLAPBTt++Bw== Received: from [10.201.5.108] (unknown [216.191.123.182]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4bKGBS315MzMkW; Sat, 14 Jun 2025 12:42:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <50830604-3bd8-47d6-920c-fd099a96a08e@FreeBSD.org> Date: Sat, 14 Jun 2025 08:42:40 -0400 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: aae67a2c2b66 - main - mfiutil: Fix unsafe assumptions of snprintf(3) return value Content-Language: en-US To: Warner Losh , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202506130121.55D1LhXF086456@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <202506130121.55D1LhXF086456@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/12/25 21:21, Warner Losh wrote: > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=aae67a2c2b663a6bce8fbc087ff8490336b8618f > > commit aae67a2c2b663a6bce8fbc087ff8490336b8618f > Author: WHR > AuthorDate: 2024-09-03 10:19:04 +0000 > Commit: Warner Losh > CommitDate: 2025-06-13 01:21:44 +0000 > > mfiutil: Fix unsafe assumptions of snprintf(3) return value > > PR: 281160 > Reviewed by: imp > Pull Request: https://github.com/freebsd/freebsd-src/pull/1405 > Closes: https://github.com/freebsd/freebsd-src/pull/1405 > --- > usr.sbin/mfiutil/mfi_bbu.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/usr.sbin/mfiutil/mfi_bbu.c b/usr.sbin/mfiutil/mfi_bbu.c > index 9075c4d0ddd0..e97227d47c70 100644 > --- a/usr.sbin/mfiutil/mfi_bbu.c > +++ b/usr.sbin/mfiutil/mfi_bbu.c > @@ -50,10 +50,23 @@ mfi_autolearn_period(uint32_t period, char *buf, size_t sz) > > tmp = buf; > if (d != 0) { > - tmp += snprintf(buf, sz, "%u day%s", d, d == 1 ? "" : "s"); > + int fmt_len; > + fmt_len = snprintf(buf, sz, "%u day%s", d, d == 1 ? "" : "s"); > + if (fmt_len < 0) { > + *buf = 0; > + return; > + } > + if ((size_t)fmt_len >= sz) { > + return; > + } > + tmp += fmt_len; > sz -= tmp - buf; > if (h != 0) { > - tmp += snprintf(tmp, sz, ", "); > + fmt_len = snprintf(tmp, sz, ", "); > + if (fmt_len < 0 || (size_t)fmt_len >= sz) { > + return; > + } > + tmp += fmt_len; > sz -= 2; > } > } It seems like using a string builder like fmemopen() or sbuf() would be better here than fragile dances with snprintf(). -- John Baldwin