Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Aug 2021 18:51:14 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 257642] e1000 doesn't check for bad Rx UDP checksum
Message-ID:  <bug-257642-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D257642

            Bug ID: 257642
           Summary: e1000 doesn't check for bad Rx UDP checksum
           Product: Base System
           Version: 13.0-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: nreilly@blackberry.com

The e1000 driver doesn't check for checksum errors on Rx UDP checksum, it m=
arks
all packets as having a good checksum.

Suggested fix:

diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c
index 458de96a7b9..1328e12daf4 100644
--- a/sys/dev/e1000/em_txrx.c
+++ b/sys/dev/e1000/em_txrx.c
@@ -797,7 +797,8 @@ em_receive_checksum(uint32_t status, if_rxd_info_t ri)
                ri->iri_csum_flags |=3D (CSUM_DATA_VALID | CSUM_PSEUDO_HDR);
                ri->iri_csum_data =3D htons(0xffff);
        }
-       if (status & E1000_RXD_STAT_UDPCS) {
+       if ((status & E1000_RXD_STAT_UDPCS | E1000_RXDEXT_STATERR_TCPE)) =
=3D=3D
+               E1000_RXD_STAT_UDPCS) {
                ri->iri_csum_flags |=3D (CSUM_DATA_VALID | CSUM_PSEUDO_HDR);
                ri->iri_csum_data =3D htons(0xffff);
        }

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-257642-227>