[dvb] segfault in demux.c
Johannes Zellner <[email protected]>
| Newsgroups | gmane.comp.video.xine.user |
|---|---|
| Organization | nebulon.de |
| Message-ID | <[email protected]> |
Hello, I hit a segfault in the dvb-code in demux.c . Probably it's related to bug : "[ 1595641 ] segfault on DVB playback" I'm using the xine-lib version 1.1.8 to watch dvb-s. When switching the channels with the xine-lib it crashed with segfault. I attached a patch which fixes the problem for me, but since it was the first time reading/debuggin xine and dvb code I'm not sure if the fix is ok. The problem is in src/demuxers/demux_ts.c around line 1202. 'section_length' is sometimes 0. This leads to pass '-1' to 'demux_ts_compute_crc32()' and within that function the 'uInt length' results in a segfault. Thanks, Johannes ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ xine-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xine-user
xine-lib-1.1.8-dvb-tune-segfault.patch
(text/x-diff, 555 B)
--- src/demuxers/demux_ts.c.orig 2007-11-13 15:22:33.000000000 +0100
+++ src/demuxers/demux_ts.c 2007-11-13 15:23:18.000000000 +0100
@@ -1199,7 +1199,8 @@
crc32 |= (uint32_t) this->pmt[program_count][section_length+3-1] ;
/* Check CRC. */
- calc_crc32 = demux_ts_compute_crc32 (this,
+ calc_crc32 = 0;
+ if(section_length != 0)
+ calc_crc32 = demux_ts_compute_crc32 (this,
this->pmt[program_count],
section_length+3-4, 0xffffffff);
if (crc32 != calc_crc32) {
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQBHOmXXfhrzllArhrARAlQrAKC60TeIKpD7qB9K68hQ1+7cuA3QlgCgsKYJ sbw0RaHKAI2hWNS1t0bZnXk= =/v5x -----END PGP SIGNATURE-----