From nobody Mon Mar 9 13:27:16 2026 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 4fTyVK5RPPz6VkxJ for ; Mon, 09 Mar 2026 13:27:21 +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 4fTyVK4Nfdz45HW for ; Mon, 09 Mar 2026 13:27:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773062841; 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=IhhERmBOyzqPX0mfadWo74O5I7LCzopjpB3bPV0gRwc=; b=tz6COQZbdrJU4AUUy82l9wl4DPQ2P2Ic5JMpw5MUj7E4hiiFREV3zMdM8Oaz70LWG2qEpw IpReMfXqKprE4S2vQZdLM1tWSsISQWTh6Glk21VxfuXD/OHXsLyzLM2CiFpqwXa2ADQGsx m4GxMAAi0WqX7uwb5u5M3YMXPQzIGrgwvKIUF1FUK/mW/1qGrAY3IcpJEIGBmuh1rPn7CV FDt6M4psuwz9G2vU42JdekMN4Fv5Dwm1tsLe6zxJbUvmBKgYHZh9zLnDIANioH6SYeyvSN R9gwBqlxOXepRCftLETQ4qTj8bhPG638X8MeaKAWn0EBg2mB4SRjnWk4NV5mjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773062841; a=rsa-sha256; cv=none; b=C3k8Pb0021PR+cyDkulRteK10YzkBJlt3E4XOS2Uf1Fklg8E57IpRPUxqTFPqbXYLpiCaq 9NyGJSsFkXqBzWF6iDnDyozutYRwvSa25SYl/i9MBsn78pzVmnz6qd5BLqvfjmRc46orW9 N32gHusDMpZzWOsUseDdwTb20frcljRB6JO97Z/0CDpfW0aWyok+HDxb2bspsCvxxOdX2e xP8wLX3vK90nfD+iBr3tiI6WvC0hanBTUaX/onw7dtwFGKnxTVlFZqBwyutTjZ46wmCU1k 9D2Rsk5Xcq1zzSzClJKU1RThe5Tcy3ZTKtN2JapGiFWublM9XJTlS2/iZoAtkg== 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=1773062841; 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=IhhERmBOyzqPX0mfadWo74O5I7LCzopjpB3bPV0gRwc=; b=l2r1B2h5IsocTT9XJAhYkHatcm3t8sCtNvQe17qpMsXpfzkmg/06NTd5BfGVdrDgDpJT17 vmP5ijANseFXGRmsqE8L/44Ntj4BfsSfxthsOf4alRNpQEvXq0SsUA/TTYB5xpbud4hOD9 2z6gcbP6lxq4SuE2SSIj30WGs9/fYnJVMBNsilUACbbcj7F6KQ9qT9HAxR8I/v0IKkIpMV hrPV2qtmGwdjnDZS12PT3LVICIwttLNCawwGVNqf3IoLkbgC2ShLKzI5RgdCipcT38T9ex y6MWYZ1qq8744C8JZZHWZXWeNQaOxw2mnQva9nktsbFjIlmEMI9B/tUGpSxOgQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fTyVK3TnfzBLC for ; Mon, 09 Mar 2026 13:27:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2758a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Mar 2026 13:27:16 +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: 969c436a6c91 - stable/14 - bhyve: Fix truncate_iov() 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 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/14 X-Git-Reftype: branch X-Git-Commit: 969c436a6c918be0f000bd317f06985a7dd92809 Auto-Submitted: auto-generated Date: Mon, 09 Mar 2026 13:27:16 +0000 Message-Id: <69aecab4.2758a.5a1ad16f@gitrepo.freebsd.org> The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=969c436a6c918be0f000bd317f06985a7dd92809 commit 969c436a6c918be0f000bd317f06985a7dd92809 Author: Mark Johnston AuthorDate: 2026-02-24 15:14:39 +0000 Commit: Ed Maste CommitDate: 2026-03-05 23:57:56 +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) (cherry picked from commit 119bdea35792006cd0cce3c864d5007f092a10c1) --- 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 d01c7a5601f4..7b8564c302af 100644 --- a/usr.sbin/bhyve/iov.c +++ b/usr.sbin/bhyve/iov.c @@ -82,19 +82,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