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

pull/2/head
Joakim Plate 14 years ago
parent 598cc84fbf
commit 75f418064e
  1. 6
      libavformat/cafdec.c

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

Loading…
Cancel
Save