[FFmpeg-devel] [PATCH 1/2] lavf/http: return error on seeking to negative postion
Lukasz Marek
lukasz.m.luki at gmail.com
Fri Feb 28 00:36:06 CET 2014
Signed-off-by: Lukasz Marek <lukasz.m.luki at gmail.com>
---
libavformat/http.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libavformat/http.c b/libavformat/http.c
index 69c4d6d..08832bd 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -955,16 +955,19 @@ static int64_t http_seek(URLContext *h, int64_t off, int whence)
else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed)
return -1;
- /* we save the old context in case the seek fails */
- old_buf_size = s->buf_end - s->buf_ptr;
- memcpy(old_buf, s->buf_ptr, old_buf_size);
- s->hd = NULL;
if (whence == SEEK_CUR)
off += s->off;
else if (whence == SEEK_END)
off += s->filesize;
+ if (off < 0)
+ return AVERROR(EINVAL);
s->off = off;
+ /* we save the old context in case the seek fails */
+ old_buf_size = s->buf_end - s->buf_ptr;
+ memcpy(old_buf, s->buf_ptr, old_buf_size);
+ s->hd = NULL;
+
/* if it fails, continue on old connection */
av_dict_copy(&options, s->chained_options, 0);
if (http_open_cnx(h, &options) < 0) {
--
1.8.3.2
More information about the ffmpeg-devel
mailing list