From nobody Wed Oct 14 16:04:33 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 4j4bcf4Hhmz6vmY1 for ; Wed, 14 Oct 2026 16:04:34 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4j4bcd6XqKz4bpR for ; Wed, 14 Oct 2026 16:04:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791993873; 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=psFUjkeFmYXB6rXqfUYQT0pUebbF2LYshaqM2SQZN1U=; b=OPlFQeDg7pX6Ji/o/zQtuAy5Aw8aeiOSEeFXUWjg/hnILBHwqoxXwWQKNjbtx1zSkhG7cD jJahC18b3YZ+HPQsN9D73/VykIu9NpvOO3fz9jI/TEZ9lewnL2tJfNXnH0WA86W7QkTdPT OxngC/HqWT99Sk8gi5g+ZixnzlYJw8W3a9PNLyW4XSX+oBEwX2Hjgp20jDh1krbhIWQHI8 ylIdytNMjd+ArDzFRR7L6ASbhlR4HrwiffsEoAejEDAOQbjHED7doRglvBolakM1VGar77 zEwfzOCWUcOUxhJ2pFL/wG6XqLGyRPMabtkxEM/QJAtmuWx6qbBV2HB8taq2BA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791993874; b=jyXBpJGgY5wReCAHlxClhk3znzyC5FZ2t4SaAgIp7p1lhOSph27ozRl3OndWZM0Kf60hUz hXWlVyJ1sgYg8bsEWPYOsHo+0fHsXHyia9Jlh8mzbcw8/gUaAHrG0HvsSdJqi6E0/zf9LB 3CUeYpqLGiPehtyZ3k2Vs3ZC5iWFMPUftEQwKuZdBsC3aihbfer8tLQFCCAzK+/21q3iDu Cg6X5j5cE6F3kUeAaueWIuC+IkkEn2x1r8DQPZWL9V6eVqAagpZiJ0I3QNlhxEVuBaQ+cD 0O4qHmUFiNNw86nDFRTcExNxTsAJLLBr0tQAaAEfDvbgWhWdwda3NK55QbfQgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791993873; 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=psFUjkeFmYXB6rXqfUYQT0pUebbF2LYshaqM2SQZN1U=; b=ABY65uu3WpXY7BZonvoFum/GUiU8Bk93NP9Son8ZGda1icSjdm6pgYFm7+t2uuyHXd3jg+ wToDyQAwpRTbRo7kbz/lx629WKTWWyOOkFh442xy+9BEYnhpKPTpd8cgsyRZTR7YSbmCw3 Pq5qNf17lFjYfkeauWhRT2fSX6Hosa7b+6XNCfuwNIpVbd6rOuopvdPajU1P+3ObxaccaG X+4CRdcVon4hiqPkPF3nTVOAuAlev+Emh7bxq+UvVvNDIMOmLNaptHU74JeAxg6RLI4MoL MXDrhsWaQW1CX6HUZJHlATYRmpQJy5sC6S6eUMPQsXGIfMO7bRl68/gCu+dOpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4j4bcd5Q63z18CH for ; Wed, 14 Oct 2026 16:04:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3033b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 14 Oct 2026 16:04:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Michael Tuexen From: Mark Johnston Subject: git: cf95af02eb15 - releng/15.1 - tcp: improve handling of stopped timers List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: Commit messages for all branches of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: cf95af02eb153c39641d0f12650ff5752619d7d5 Auto-Submitted: auto-generated Date: Wed, 14 Oct 2026 16:04:33 +0000 Message-Id: <6acfa811.3033b.732709dc@gitrepo.freebsd.org> The branch releng/15.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=cf95af02eb153c39641d0f12650ff5752619d7d5 commit cf95af02eb153c39641d0f12650ff5752619d7d5 Author: Michael Tuexen AuthorDate: 2026-07-28 20:15:22 +0000 Commit: Mark Johnston CommitDate: 2026-10-13 14:10:21 +0000 tcp: improve handling of stopped timers When a TCP timer is stopped, t_timers[] is set to SBT_MAX. Adding the corresponding t_precisions[], if it is not zero, would result in overflows in tcp_timer_next(). To avoid this, skip stopped timers. The problem was identified while debugging uperf by Lukas Book and an initial patch was provided by him. The committed patch was suggested by glebius. The problem can be observed by running netstat -nxptcp and looking for negative timer values and by observing very long running timers in some cases. Approved by: so Security: FreeBSD-EN-26:27.tcp Reported by: Lukas Book Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D58484 (cherry picked from commit 52b7cbcb78c14e89f6faec8da5acc2caa3d37208) (cherry picked from commit e8d1cee437414dd9bb3c779ff0a0c234fb7d411e) --- sys/netinet/tcp_timer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 57c57666fa3a..56c50faaf4d1 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -859,6 +859,8 @@ tcp_timer_next(struct tcpcb *tp, sbintime_t *precision) sbintime_t after, before; for (i = 0, rv = TT_N, after = before = SBT_MAX; i < TT_N; i++) { + if (tp->t_timers[i] == SBT_MAX) + continue; if (tp->t_timers[i] < after) { after = tp->t_timers[i]; rv = i;