From nobody Wed Oct 14 16:04:33 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 4j4bcf4JTcz6vmlx 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 4j4bcd6cGSz4bbX 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=1791993874; 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=F8PVICW05f6cJQe+TyWYokujWzWefYGx4qe7QmNpneXiw0MtqBE7ywK2lHxR3u+MHRLsjP dFLet815s9ewjlvKyGhrjJEyIjn7zKX7IemFNqd93pnIsMifU8FhuVFMMvF87qtkN/Jei0 HdmImzm2HO9yvWPVVAKEm8PrNZlq4JMeRWUg5AJUQ94Ibrv2KK9aFs664pivLgHEGgx4Q9 Ugoxfti8DnBkFKqvwKJq3EsIQvGFAJeQzBPMXbk0jwp5H9hfhySzpMmwG830ZPfMPIR5xm e9TjaIHT/NnYTrLAcAG2R2KeFINJdDJnkbDvFyDy95UV+PYIS5kMv5KXuGAILw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791993874; b=lRmixhTFBSkU5dq4Bb2cfgcGWPtBZRK9rbBmQ+/PByqywYZ6zf7LQlIBJXEn1c188rHDIm v9LCDbpbTUG6sFsEqBKE8iWNq9+nZqD+NSPM3Q965ihzdj9j3ST2nMHP1UgN3mfdcA03R0 dX6IzwV7R0WxJ0oINJS8LEJzgS8W7M5ghFLZH5EcZcOLw+5N2FDL16CyEcTaeWmuHTRvLc hZxMNhFv78CZ9bvDR4GC/rlXAvF690EihgOxu89X7dpNkFXe+L4+V3fZVThxno6FJQWGMs GJJ7nh/CXAgJShjQ26RpBwtnJ1P8zOFqw5KC6q+nziL0Uw17WUiDxe1qMslDFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791993874; 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=VH9LNJQNib3ZQHa3823k7eA33qC8zdzs+iQpyDpVpauN6P0zDRz7OwhqYZXt8sN3x8COMh kqgTCMnGWRCB3HnAsTeqf+l30NhP2LNg/S6dO/lb1qO93H4CMMwTn2VGUmHc5/4drJh/Fs chbQT097iAQP/sykWWAU3uoLIhzdQz4xCd4mkzFUK/hwCBbay/n5rhDIltv+9UfGjA1+ky OsZLkj9ypyE1EzYRtwgb8BbaeJiLX/7Vj3wv1nnKIR9t1LU07FI/+1g6+80ZGtanyM3WpI GrxU4cc+YB+u8kDIw5AqaHN6YfnGx7qPZH3tXKkeeby5G10uOOzk7gF4ydXMmg== 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 4j4bcd5QHQz18R3 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-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD 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;