[FFmpeg-cvslog] lavf/ftp: fix seek to nagative position

Lukasz Marek git at videolan.org
Fri Feb 28 02:26:00 CET 2014


ffmpeg | branch: master | Lukasz Marek <lukasz.m.luki at gmail.com> | Fri Feb 28 00:07:31 2014 +0100| [9f4b55ef49c1525080507f5eaeef91091d243e16] | committer: Lukasz Marek

lavf/ftp: fix seek to nagative position

Signed-off-by: Lukasz Marek <lukasz.m.luki at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9f4b55ef49c1525080507f5eaeef91091d243e16
---

 libavformat/ftp.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavformat/ftp.c b/libavformat/ftp.c
index 40a6a33..dae8aa0 100644
--- a/libavformat/ftp.c
+++ b/libavformat/ftp.c
@@ -575,10 +575,12 @@ static int64_t ftp_seek(URLContext *h, int64_t pos, int whence)
     if (h->is_streamed)
         return AVERROR(EIO);
 
-    /* XXX: Simulate behaviour of lseek in file protocol, which could be treated as a reference */
-    new_pos = FFMAX(0, new_pos);
-    fake_pos = s->filesize != -1 ? FFMIN(new_pos, s->filesize) : new_pos;
+    if (new_pos < 0) {
+        av_log(h, AV_LOG_ERROR, "Seeking to nagative position.\n");
+        return AVERROR(EINVAL);
+    }
 
+    fake_pos = s->filesize != -1 ? FFMIN(new_pos, s->filesize) : new_pos;
     if (fake_pos != s->position) {
         if ((err = ftp_abort(h)) < 0)
             return err;



More information about the ffmpeg-cvslog mailing list