avio: Fix ffio_limit() when due to seeking past the end less than 0 bytes remain.
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 25 Dec 2011 03:48:26 +0000 (04:48 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Jan 2012 21:32:28 +0000 (22:32 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 27d323577c19af218f8a5ac33364f213b623a023)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index 5ed85dc..b59a692 100644 (file)
@@ -273,9 +273,10 @@ int ffio_limit(AVIOContext *s, int size)
             if(!s->maxsize || s->maxsize<newsize)
                 s->maxsize= newsize;
             remaining= s->maxsize - avio_tell(s);
+            remaining= FFMAX(remaining, 0);
         }
 
-        if(s->maxsize>=0 && remaining>=0 && remaining+1 < size){
+        if(s->maxsize>=0 && remaining+1 < size){
             av_log(0, AV_LOG_ERROR, "Truncating packet of size %d to %"PRId64"\n", size, remaining+1);
             size= remaining+1;
         }