From nobody Sat Jun 14 13:12:17 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 4bKGrz1mqNz5MSY7 for ; Sat, 14 Jun 2025 13:12:35 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) (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-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bKGry6VdLz3YS3 for ; Sat, 14 Jun 2025 13:12:34 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-311da0bef4aso3422242a91.3 for ; Sat, 14 Jun 2025 06:12:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1749906748; x=1750511548; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=4husOKAZTdenR4dTY7R6+2F368XC82t/F0SJemMOk68=; b=ai2RqHEXCx746ZrlRUm2fSsTgOCO8zzOuMT47pEPeG0eYD0x6uFJGobyDDgsdIZEOa ANTpXBZ1wtj8hcOCa4nGuaI2tfe7Ia1MM9xXHOBNK5KwTK0jhYgP7QOdrgI5v7BxxiBv 1kH9y9K1b3icGGnpi0RP9qwDp0ZE0m6F5V8979D39rpb4Ka1f+ntmx+lOtXfmGtpiPIA 0hA+AJ36GuvnQpjahcZFX/4iFfIPk1VHAsMjaHuP5XQ4IVe2zT3jC6T+CIW9hHlzcnTr CMYs7u0U32K8Z9m0IYzMG5eJxyoz1kPj1lgAUBEkodNzNu9sXw06/9SDipjJeRjMeCo+ D6XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749906748; x=1750511548; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4husOKAZTdenR4dTY7R6+2F368XC82t/F0SJemMOk68=; b=wZKJboSU+4z3EQyM7/jus3khZAKTA0lkSR5mYzEPDyjDI4PoY3miw4fLinuWh60NES 5OsqDrHBDTww0ch/+Roo56Jy6w/oKWpHXAVZ14BUkCGQ05ELptg0TJzlHUKpxx97aZss Xvd3Jj35pOLC/XP+k5DkV9eVmNEmWxUXiuJCfFfDshgPd8Xi4ojIKNh6NXyLedHjxZjD OktdvC7HD0q7Da85oOv0OmRFbNdHhZIBxcLvublqyLMZNWnhzoy039Xs8swbbNdU/Urq 0r42riRr720gm6CUZa6acy+ATJusvZGl5z/4zO3AqolKb5AYBPaooJH8bTY9Cs77TAX+ /URQ== X-Forwarded-Encrypted: i=1; AJvYcCUB0resPonCBC7Pl+76qBn60YHS4JFfGpyTKIivP/3UO/dbRNjhRqeIf5WW4I0E1LvfXPGhlR4aqh0/8qkixo6Al4Go@freebsd.org X-Gm-Message-State: AOJu0Yz9ZPjRz5aebPjfMtaQIVRKGyfY+oec4tlcznP04JYDBH+Tkf/t I6JwGVBLmyskWtTcI3J2uV4DCrUwJ6MCBqa1yRk+NWtKzDPE6ZboMBSojhEoMabBVWQRszy08B9 I8+athU8xpWcDfM/ex44K1ecV3kTYCOaNrZP8dXmgJw== X-Gm-Gg: ASbGnctjDjgk5vl9bhtgjG2RKE/nclVgaJhcP6kPXYm9j1Ta0E3DiUts6uHhXeNN6Uo rKajYM23ZOQxr0gmYa3BAaYQjuPT/YJaVZ96apvTHYLCPkHcaAqRdfot+5lealbJoW8abtSI6I8 CwVq3IHf9CwmxwpjGgPL5Klp9RFjDykMRl2Xy5Rtn/tqg= X-Google-Smtp-Source: AGHT+IGIBOExcCinRXlMeezWAMnwN35V+g8jhyYGPOYcL8TL+/Bz/KqBlApFQ3R1y+sE07aHvNaX41kp2mJgTuaq0HY= X-Received: by 2002:a17:90b:4cc8:b0:311:c939:c859 with SMTP id 98e67ed59e1d1-313f1e316cfmr4616193a91.30.1749906748502; Sat, 14 Jun 2025 06:12:28 -0700 (PDT) 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 References: <202506130121.55D1LhXF086456@gitrepo.freebsd.org> <50830604-3bd8-47d6-920c-fd099a96a08e@FreeBSD.org> In-Reply-To: <50830604-3bd8-47d6-920c-fd099a96a08e@FreeBSD.org> From: Warner Losh Date: Sat, 14 Jun 2025 07:12:17 -0600 X-Gm-Features: AX0GCFsU4kzLSCspF-0pPe_Eh40OnZtUIotUWV9SvdRWzE6pRPIhjYANKCzLEGc Message-ID: Subject: Re: git: aae67a2c2b66 - main - mfiutil: Fix unsafe assumptions of snprintf(3) return value To: John Baldwin Cc: Warner Losh , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4bKGry6VdLz3YS3 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] On Sat, Jun 14, 2025 at 6:42=E2=80=AFAM John Baldwin wrot= e: > > 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=3Daae67a2c2b663a6bce8fbc08= 7ff8490336b8618f > > > > 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, si= ze_t sz) > > > > tmp =3D buf; > > if (d !=3D 0) { > > - tmp +=3D snprintf(buf, sz, "%u day%s", d, d =3D=3D 1 ? ""= : "s"); > > + int fmt_len; > > + fmt_len =3D snprintf(buf, sz, "%u day%s", d, d =3D=3D 1 ?= "" : "s"); > > + if (fmt_len < 0) { > > + *buf =3D 0; > > + return; > > + } > > + if ((size_t)fmt_len >=3D sz) { > > + return; > > + } > > + tmp +=3D fmt_len; > > sz -=3D tmp - buf; > > if (h !=3D 0) { > > - tmp +=3D snprintf(tmp, sz, ", "); > > + fmt_len =3D snprintf(tmp, sz, ", "); > > + if (fmt_len < 0 || (size_t)fmt_len >=3D sz) { > > + return; > > + } > > + tmp +=3D fmt_len; > > sz -=3D 2; > > } > > } > > It seems like using a string builder like fmemopen() or sbuf() would be > better here than fragile dances with snprintf(). True. This is better than what was there, but either of those would be bett= er. Warner