OSDN Git Service

lavf/ftp: fix seek to nagative position
authorLukasz Marek <lukasz.m.luki@gmail.com>
Thu, 27 Feb 2014 23:07:31 +0000 (00:07 +0100)
committerLukasz Marek <lukasz.m.luki@gmail.com>
Thu, 27 Feb 2014 23:07:31 +0000 (00:07 +0100)
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
libavformat/ftp.c

index 40a6a33..dae8aa0 100644 (file)
@@ -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;