aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Plate <elupus@ecce.se>2012-02-03 19:13:36 +0000
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-10 15:27:49 -0500
commit8332321c5737cf24ebad504bf10a03818424718d (patch)
treee43e1a0b0d365bd5ed75aee1aaf7fefe902f54b9
parent3371e89640eb519edf0ca8695f370867e55040d0 (diff)
downloadffmpeg-8332321c5737cf24ebad504bf10a03818424718d.tar.gz
dv: Check return value of avio_seek and avoid modifying state if it fails
Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
-rw-r--r--libavformat/dv.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavformat/dv.c b/libavformat/dv.c
index 769f6b74f4..6714bf2afc 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -491,10 +491,11 @@ static int dv_read_seek(AVFormatContext *s, int stream_index,
DVDemuxContext *c = r->dv_demux;
int64_t offset = dv_frame_offset(s, c, timestamp, flags);
- dv_offset_reset(c, offset / c->sys->frame_size);
+ if (avio_seek(s->pb, offset, SEEK_SET) < 0)
+ return -1;
- offset = avio_seek(s->pb, offset, SEEK_SET);
- return (offset < 0) ? offset : 0;
+ dv_offset_reset(c, offset / c->sys->frame_size);
+ return 0;
}
static int dv_read_close(AVFormatContext *s)