[vdr] PMT in multiple TS packet bug

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Jan 19 11:22:56 CET 2009


On 19.01.2009 11:06, Frank Schmirler wrote:
> Hi,
> 
> On Mon, 19 Jan 2009 10:44:18 +0100, Alexw wrote
>> I have noticed a PMT parsing issue with VDR version 1.7.x. The bug 
>> is still present in version 1.7.3 but the behaviour is worst because 
>> it segfaults.
>>
>> First I found out that 2 lines where added in the ParsePmt method.
>>
>>      Data += Data[0] + 1; // this is the first packet
>>
>>      Length -= Data[0] + 1;
>>
>> At the moment I don't know exactly what is the meaning of this 2 operations.
> 
> These lines are for handling the SI pointer field. Data[0] is the pointer
> field, which contains the byte offset to the actual data (usually 0). "+ 1"
> for the pointer field itself. 
> 
> The order of the two statements need to be reversed. First fix the length,
> then the data pointer:
> 
>      Length -= Data[0] + 1;
>      Data += Data[0] + 1;

Mea culpa!
It was correct in Frank's original patch, but for some
silly reason I swapped these two lines when adopting the patch.
Sorry about that...

Will fix it in 1.7.4.

Klaus



More information about the vdr mailing list