Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (4972): Dvb-core: fix bug in CRC-32 checking on 64-bit systems

CRC-32 checking during ULE decapsulation always failed on x86_64 systems due
to the size of a variable used to store CRC. This bug was discovered on
Fedora Core 6 with kernel-2.6.18-1.2849. The i386 counterpart has no such
problem. This patch has been tested on 64-bit system as well as 32-bit system.

Signed-off-by: Ang Way Chuang <wcang@nrg.cs.usm.my>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Ang Way Chuang and committed by
Mauro Carvalho Chehab
dedcefb0 38284ba3

+1 -1
+1 -1
drivers/media/dvb/dvb-core/dvb_net.c
··· 605 605 { &utype, sizeof utype }, 606 606 { priv->ule_skb->data, priv->ule_skb->len - 4 } 607 607 }; 608 - unsigned long ule_crc = ~0L, expected_crc; 608 + u32 ule_crc = ~0L, expected_crc; 609 609 if (priv->ule_dbit) { 610 610 /* Set D-bit for CRC32 verification, 611 611 * if it was set originally. */