Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6120b8a authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

netfilter: nf_nat_snmp: fix checksum calculation (v4)

Fix checksum calculation in nf_nat_snmp_basic.

Based on patches by Clark Wang <wtweeker@163.com> and
Stephen Hemminger <shemminger@vyatta.com>.

https://bugzilla.kernel.org/show_bug.cgi?id=17622



Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 15cdeada
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -893,13 +893,15 @@ static void fast_csum(__sum16 *csum,
	unsigned char s[4];

	if (offset & 1) {
		s[0] = s[2] = 0;
		s[0] = ~0;
		s[1] = ~*optr;
		s[2] = 0;
		s[3] = *nptr;
	} else {
		s[1] = s[3] = 0;
		s[0] = ~*optr;
		s[1] = ~0;
		s[2] = *nptr;
		s[3] = 0;
	}

	*csum = csum_fold(csum_partial(s, 4, ~csum_unfold(*csum)));