[FFmpeg-cvslog] lavf/http: return error on seeking to negative postion
Lukasz Marek
git at videolan.org
Thu Mar 6 02:09:18 CET 2014
ffmpeg | branch: master | Lukasz Marek <lukasz.m.luki at gmail.com> | Fri Feb 28 00:36:06 2014 +0100| [4ba6a534dc94bd4ff44503de9c7985a456cfe503] | committer: Lukasz Marek
lavf/http: return error on seeking to negative postion
Signed-off-by: Lukasz Marek <lukasz.m.luki at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4ba6a534dc94bd4ff44503de9c7985a456cfe503
---
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) {
More information about the ffmpeg-cvslog
mailing list