Fwd: [PATCH] DVB-CORE: Bug in CRC-32 checking during ULE decapsulation on 64-bit system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

     I am resending this email because the last email bounced back due to the large attachment.
Now the attachment has been trimmed down.

CRC-32 checking during ULE decapsulation always failed on x86_64 system due to the
size of a variable used to store CRC? Discovered this bug on Fedora Core 6 with 
kernel-2.6.18-1.2849. The i686 counterpart has no such problem. Attached is 
the output of dmesg showing the problem. Look for the last few lines for indication. 
This patch has been tested on 64-bit system as well as 32-bit system.
Guess this bug should affect 2.6.19 as well since dvb_net.c hasn't 
changed. Other kernel versions may be affected too. I am not sure why there is extra 0xff... for
64 bit unsigned long (I know it is 64 bit wide in 64-bit system) :-D. If this patch is relevant,
should I send a similar patch to Adrian Bunk for his 2.6.16.x tree? I haven't tested 2.6.16.x on my
64 bit system. Thanks in advance

Signed-off-by: Ang Way Chuang <wcang@xxxxxxxxxxxxx> 

--- linux-2.6.18.i386/drivers/media/dvb/dvb-core/dvb_net.c.bak  2006-12-07 23:45:04.000000000 +0800
+++ linux-2.6.18.i386/drivers/media/dvb/dvb-core/dvb_net.c      2006-12-07 23:45:31.000000000 +0800
@@ -604,7 +604,7 @@ static void dvb_net_ule( struct net_devi
                                { &utype, sizeof utype },
                                { priv->ule_skb->data, priv->ule_skb->len - 4 }
                        };
-                       unsigned long ule_crc = ~0L, expected_crc;
+                       u32 ule_crc = ~0L, expected_crc;
                        if (priv->ule_dbit) {
                                /* Set D-bit for CRC32 verification,
                                 * if it was set originally. */


1297: CRC32 check FAILED: 0xdbbada7a / 0xffffffffdbbada7a, SNDU len 46 type 0x1, ts_remain 133, next 2: ffff.
1299: CRC32 check FAILED: 0x8cc5697a / 0xffffffff8cc5697a, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
1300: CRC32 check FAILED: 0x8748fbae / 0xffffffff8748fbae, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
1302: CRC32 check FAILED: 0xdbbada7a / 0xffffffffdbbada7a, SNDU len 46 type 0x1, ts_remain 133, next 2: ffff.
1304: CRC32 check FAILED: 0xdbbada7a / 0xffffffffdbbada7a, SNDU len 46 type 0x1, ts_remain 133, next 2: ffff.
1305: CRC32 check FAILED: 0xed38bb7b / 0xffffffffed38bb7b, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
1306: CRC32 check FAILED: 0xdbbada7a / 0xffffffffdbbada7a, SNDU len 46 type 0x1, ts_remain 133, next 2: ffff.
1307: CRC32 check FAILED: 0xb04717de / 0xffffffffb04717de, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
1308: CRC32 check FAILED: 0x81251dbe / 0xffffffff81251dbe, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
1309: CRC32 check FAILED: 0x92583cd5 / 0xffffffff92583cd5, SNDU len 102 type 0x1, ts_remain 77, next 2: ffff.
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux