[libdvbpsi-devel] Section CRC not being checked

Brad Bitterman bitter at vtilt.com
Fri Oct 25 16:02:43 CEST 2013


Attached is a capture of ETT TS packets taht you can feed into libdvbpsi.

Brad Bitterman
bitter at vtilt.com



On Oct 23, 2013, at 10:59 AM, Jean-Paul Saman <jpsaman at videolan.org> wrote:

> Brat,
> 
> Sorry for the delay I just spotted your e-mail.
> 
> On Thu, Oct 3, 2013 at 6:01 PM, Brad Bitterman <bitter at vtilt.com> wrote:
> So I had a chance to test all the ATSC tables that are in libdvbpsi. I did make the change mentioned below to each table and attached a patch to this email.
> 
> Thanks, I'll have a look at it.
>  
> 
> I did find and issue with ETT parsing though. The function dvbpsi_atsc_DecodeETTSections causes a crash. It seems the memory for p_ett->p_etm_data is not being allocated. Also, the check for the p_ett->p_etm_data is wrong. It should be this:
> 
>  
>  if (!p_ett->p_etm_data)
>             abort();
> 
> 
> Indeed this is a bug.
>  
> I tried malloc'ing the memory and correcting the pointer check. When I do that I get an abort from libc free saying double free or corruption. Here is the stack trace:
> 
> #0  0x0000003908e35935 in raise () from /lib64/libc.so.6
> #1  0x0000003908e370e8 in abort () from /lib64/libc.so.6
> #2  0x0000003908e74e8b in __libc_message () from /lib64/libc.so.6
> #3  0x0000003908e7c00e in _int_free () from /lib64/libc.so.6
> #4  0x00007ffff7ddca91 in dvbpsi_DeletePSISections (p_section=0x7fffe80008c0) at psi.c:179
> #5  0x00007ffff7deb992 in dvbpsi_atsc_GatherETTSections (p_dvbpsi=0x7ffff00008c0, p_decoder=0x7fffe8001910, p_section=0x7fffe80008c0)
>     at tables/atsc_ett.c:403
> #6  0x00007ffff7ddd17e in dvbpsi_Demux (p_dvbpsi=0x7ffff00008c0, p_section=0x7fffe80008c0) at demux.c:123
> #7  0x00007ffff7ddc31e in dvbpsi_packet_push (p_dvbpsi=0x7ffff00008c0, p_data=0x7ffff75b5dd0 "GR\a\031") at dvbpsi.c:445
> #8  0x0000000000403cff in ATSCServices::demuxCallback (stream=0x7ffff75b5dd0 "GR\a\031", size=188, privateData=0x7fffffffde70, args=0x0)
>     at ATSCServices.cpp:172
> #9  0x00000000004021fb in DemuxInterface::run (context=0x609060) at DemuxInterface.cpp:106
> #10 0x0000003909607d14 in start_thread () from /lib64/libpthread.so.0
> #11 0x0000003908ef168d in clone () from /lib64/libc.so.6
> 
> 
> I'm not sure where to go from here in trying to debug it. I'm not actually using EITs and ETTs so its not a problem for me but might be for someone else in the future.
> 
> I can send you a capture of ETT TS packets that you can test with if you want me to.
> 
> Please sent me a capture I can then debug.
>  
> Kind regards,
> 
> Jean-Paul Saman.
> 
> 
> Thanks,
> 
> Brad Bitterman
> bitter at vtilt.com
> 
> 
> 
> On Oct 2, 2013, at 1:30 PM, Jean-Paul Saman <jpsaman at videolan.org> wrote:
> 
>> Brad,
>> 
>> On Wed, Oct 2, 2013 at 7:03 PM, Brad Bitterman <bitter at vtilt.com> wrote:
>> The patch works.
>> 
>> On another note, in atsc_mgt.c I think there might be an issue in dvbpsi_AddSectionMGT. At line 387 there is a check to see if p_decoder->p_building_mgt gets created from the call to dvbpsi_atsc_NewMGT. The check is as follows:
>> 
>> if (p_decoder->p_building_mgt)
>>          return false;
>> 
>> Shouldn't it be this:
>> 
>> if (!p_decoder->p_building_mgt)
>>           return false;
>> 
>>  
>> indeed, I quickly checked 2 other ATSC table  and they have the same problem.
>> I guess it refers to all ATSC tables. Could you prepare a patch for all ATSC tables and properly test it?
>> 
>> I do not have ATSC sources, so cannot test.
>> 
>> Kind regards,
>> 
>> Jean-Paul Saman.
>> 
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/libdvbpsi-devel/attachments/20131025/5836e3bb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ett.ts
Type: application/octet-stream
Size: 2068 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/libdvbpsi-devel/attachments/20131025/5836e3bb/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/libdvbpsi-devel/attachments/20131025/5836e3bb/attachment-0001.html>


More information about the libdvbpsi-devel mailing list