From nobody Wed Mar 4 15:58:41 2026 X-Original-To: dev-commits-src-branches@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 4fQy5L5fmMz6Tgh7 for ; Wed, 04 Mar 2026 15:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fQy5L3Lsxz3pj7 for ; Wed, 04 Mar 2026 15:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772639926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S0N66TCEXSRFPfA+YM+O64alALGh0SylIEudUWAxfvo=; b=UjZ8yNmvnA/Rr8cuWyOfmBNohrjxy0uQhbOnWbsr7kztW4uQ7Bko8Qai92CI/v++KsjezL TK4v/+CgbsIX5otPV67uCuqUVBzAI/3rQ/QLA86JOKCqxaUjXiUxKxM60NMjhZ7pbX0P1y UWaq24m3nFAEflem5Ki9og5W7/5h6HoFwuwTtkWFFEeNpOnIawUi2WWAH8nd3HVJLJnm0F fIcHrGZX+2XqYuR+/1ALDN0858MEdm4Db6FWYzwqF4Lc2NhWVqFjs6nkmBCnu/RcHgV9iO 5wK53BXwfegyR26i8V/BP+xvhI6gjqrcWQynBl4ro5N7C2f3KC1r3fQDfaf4cA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772639926; a=rsa-sha256; cv=none; b=bri5pPTF4T9fUE1VkXB4MTQiun3C6g6FVou6XesOon+63bFhPUgWuH/PdXS1+XQLCszLy+ 0/S6b3uG7M/HYuuwTara2aRvZpV5goMl15A4JoJsJt0rp062ghKD4NqpHIFIEHf36/HyKJ XPADM2BYXB6XM2/0OAFThP6w+oUKtiUC+RggwEyCsnNOKqHMz5cKSDGjtDjev69GqZRlcl ubGW+Vl3D4Nieri+0h+tiChSKfL3I5kKguGh63mmimMmG/PWfurUWOuCsdUr8ZoldoBPwm eRDkj8Z43WPrdarLmex5Q+IycpaJR/NSYG7C4CHhaNGBTYrzKzak2+9dmTa+rQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772639926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S0N66TCEXSRFPfA+YM+O64alALGh0SylIEudUWAxfvo=; b=MDYuvH9Vn5rof6ErBggtm884nP6FsnKLC5iuLrj9ydydm7wmMVz2J6NEfyiQJplnpfdMPZ oMP1HysxipaS5Dhp5lQh9XP87gP7Vg7agDbQd8UE6i521a+gsD1Zq8orAh6j3MAwFiuczC bFBbp/kQh8SwmiHZ9OLoXQ7sC/RSX/kKWFPynMFGsGip3NH+DwxKHD3j3uH7xho8b3jmuB r7a+bUK2ZYz7JxhIJa8GiuqorlLdRFhORxuvJfW45sm0IWsh4P9+yx7dvGRAEAtvoCy2O6 OH1fmrufSbjws/DzLn6P2Ivu/bkK2v53ef5vwcs8ATluC5hNlfJ5tH7dGgalcg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fQy5L2fxvzxsx for ; Wed, 04 Mar 2026 15:58:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 363e1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 04 Mar 2026 15:58:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mark Johnston From: Ed Maste Subject: git: 119bdea35792 - stable/15 - bhyve: Fix truncate_iov() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 119bdea35792006cd0cce3c864d5007f092a10c1 Auto-Submitted: auto-generated Date: Wed, 04 Mar 2026 15:58:41 +0000 Message-Id: <69a856b1.363e1.7a39dc8a@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=119bdea35792006cd0cce3c864d5007f092a10c1 commit 119bdea35792006cd0cce3c864d5007f092a10c1 Author: Mark Johnston AuthorDate: 2026-02-24 15:14:39 +0000 Commit: Ed Maste CommitDate: 2026-03-04 15:58:05 +0000 bhyve: Fix truncate_iov() The implementation was simply wrong. It would always just return the first entry in the iovec, even if the requested length is larger than that first entry. Note, this function will be removed soon, see D53468. Reported by: Vinod p n Reviewed by: des, emaste, Hans Rosenfeld MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D55438 (cherry picked from commit d7d4da91de201841c57a6b8f89b450754b9b8696) --- usr.sbin/bhyve/iov.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/usr.sbin/bhyve/iov.c b/usr.sbin/bhyve/iov.c index 5ebc426227a6..2bad55267ff3 100644 --- a/usr.sbin/bhyve/iov.c +++ b/usr.sbin/bhyve/iov.c @@ -81,19 +81,14 @@ count_iov(const struct iovec *iov, int niov) void truncate_iov(struct iovec *iov, int *niov, size_t length) { - size_t done = 0; int i; - for (i = 0; i < *niov; i++) { - size_t toseek = MIN(length - done, iov[i].iov_len); - done += toseek; - - if (toseek <= iov[i].iov_len) { - iov[i].iov_len = toseek; - *niov = i + 1; - return; - } + for (i = 0; i < *niov && length > 0; i++) { + if (length < iov[i].iov_len) + iov[i].iov_len = length; + length -= iov[i].iov_len; } + *niov = i; } ssize_t