[Ffmpeg-devel] Possible problem with recent changes in extradata handling

Luca Abeni lucabe72
Wed Jun 29 09:58:59 CEST 2005


Hi all,

this morning, after a cvs update I had a crash when trying to decode an
MPEG TS coming from satellite (it was euronews from hotbird).

The problem seems to be around line 1900 in libavformat/utils.c:
if(st->parser && st->parser->parser->split && !st->codec.extradata){
    int i= st->parser->parser->split(&st->codec, pkt->data, pkt->size);
    if(i){
        st->codec.extradata_size= i;
        st->codec.extradata= av_malloc(st->codec.extradata_size);
        memcpy(st->codec.extradata, pkt->data, st->codec.extradata_size);
    }
}
(this code has been recently added, if I am not mistaken).

Now, when parsing the video stream (mpeg2 video),
st->parser->parser->split() returns -1, so an av_malloc(-1) is performed
and the following memcpy() causes the crash. I worked around the probelm
by changing "if(i)" in "if(i > 0)".

Unfortunately, I am in hurry and I have no time to get a dump of the TS
right now, but I hope to be able to submit a proper bug report
(including a .ts that can trigger the problem) after luch.

			Thanks,
				Luca
-- 
_____________________________________________________________________________
Copy this in your signature, if you think it is important:
                               N O    W A R ! ! !





More information about the ffmpeg-devel mailing list