Mailing List archive

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

[vdr] Re: Aborted - a test case



Marcel Wiesweg wrote:
> 
> Am Montag, 13. September 2004 17:31 schrieb Stefan Huelswitt:
> > On 13 Sep 2004 Marcel Wiesweg <marcel.wiesweg@gmx.de> wrote:
> > > It would be great if I had the original data in a binary file. Does
> > > someone know an elegant way to convert the printout below to a binary
> > > file, or to save it directly from gdb?
> >
> > I just mailed you the data in binary format.
> 
> Ok, I have analyzed the data and as I had suspected it is broken, but quite
> skillfully so. The outer structure, the section and the event loop size is
> all right with correct size, CRC and all. The event in the loop however is
> truncated. It says to be of size 40xx (which is reasonable, EIT sections are
> limited to 4096). I assume it has had that size sometimes in the past, was
> then taken, truncated and correctly packed in a new section.
> 
> Currently, libsi is putting some trust in the data. After all, it is error
> checked twice, and stations won't send malicious data over the air.
> Currently it will read the full 4050 or so bytes, which leads to a segfault if
> not to the observed abort() occurs before.
> 
> The only elegant way I currently see to solve that  is to use C++ exceptions.
> I hope Klaus does not object to the use of exeptions?
> There are two approaches, the exceptions can guaranteed to be caught inside
> libsi (some functions would be boolean then, and parsing of a section in VDR
> must be stopped if they return false), or the exceptions are caught inside
> VDR.
> 
> Marcel


No exceptions, please!

There must be another way to handle this.

Klaus




Home | Main Index | Thread Index