DragonFlyBSD Kernel Audit
DF-0487 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -1100,7 +1100,7 @@
 	if (tcp_do_sack && (to->to_flags & TOF_SACK_PERMITTED))
 		sc->sc_flags |= SCF_SACK_PERMITTED;
 	if (tp->t_flags & TF_NOOPT)
-		sc->sc_flags = SCF_NOOPT;
+		sc->sc_flags |= SCF_NOOPT;
 #ifdef TCP_SIGNATURE
 	/*
 	 * If listening socket requested TCP digests, and received SYN
@@ -1110,7 +1110,7 @@
 	 * attempt to use it in syncache_respond().
 	 */
 	if (to->to_flags & TOF_SIGNATURE)
-		sc->sc_flags = SCF_SIGNATURE;
+		sc->sc_flags |= SCF_SIGNATURE;
 #endif /* TCP_SIGNATURE */
 	sc->sc_sndwnd = th->th_win;