git: 0a05ea1f56e6 - main - tcp: keep syncache flags when updating ECN info

From: Richard Scheffenegger <rscheff_at_FreeBSD.org>
Date: Wed, 18 Sep 2024 09:49:35 UTC
The branch main has been updated by rscheff:

URL: https://cgit.FreeBSD.org/src/commit/?id=0a05ea1f56e65ec0477d56daf5ed623087464082

commit 0a05ea1f56e65ec0477d56daf5ed623087464082
Author:     Richard Scheffenegger <rscheff@FreeBSD.org>
AuthorDate: 2024-09-18 09:18:00 +0000
Commit:     Richard Scheffenegger <rscheff@FreeBSD.org>
CommitDate: 2024-09-18 09:18:30 +0000

    tcp: keep syncache flags when updating ECN info
    
    While processing the ECN flags of an incoming packet,
    incorrectly cleared all other syncache flags.
    
    Reported by: tuexen
    Reviewed By: tuexen, #transport
    Sponsored by: NetApp, Inc.
    Differential Revision: https://reviews.freebsd.org/D46694
---
 sys/netinet/tcp_syncache.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index d0a7690256f4..80bf12474c1c 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -1538,7 +1538,7 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
 		 */
 		if (sc->sc_flags & SCF_ECN_MASK) {
 			sc->sc_flags &= ~SCF_ECN_MASK;
-			sc->sc_flags = tcp_ecn_syncache_add(tcp_get_flags(th), iptos);
+			sc->sc_flags |= tcp_ecn_syncache_add(tcp_get_flags(th), iptos);
 		}
 #ifdef MAC
 		/*