[cafdec] Check return value of avio_seek and avoid modifying state if it fails

This commit is contained in:
Joakim Plate 2011-09-14 19:24:07 +02:00
parent 598cc84fbf
commit 75f418064e

View File

@ -366,6 +366,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
{
AVStream *st = s->streams[0];
CaffContext *caf = s->priv_data;
CaffContext caf2 = *caf;
int64_t pos;
timestamp = FFMAX(timestamp, 0);
@ -385,7 +386,10 @@ static int read_seek(AVFormatContext *s, int stream_index,
return -1;
}
avio_seek(s->pb, pos + caf->data_start, SEEK_SET);
if (avio_seek(s->pb, pos + caf->data_start, SEEK_SET) < 0) {
*caf = caf2;
return -1;
}
return 0;
}