changeset 1746:2649c0a9c037 libavformat

protect the size=seek(SEEK_END,-1)+1 results with an if (.. < 0), else the return value may still end up being zero (if the seek returns -1, which is e.g. what file.c will return on error), which is a valid (but incorrect) filesize. Patch by Ronald S. Bultje % rbultje A ronald P bitfreak P net % Original thread: date: Jan 2, 2007 2:11 AM subject: [Ffmpeg-devel] Re: [PATCH] file length handling
author gpoirier
date Tue, 30 Jan 2007 10:37:52 +0000
parents 699a422bca90
children fa70e732d2db
files avio.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/avio.c	Mon Jan 29 15:02:57 2007 +0000
+++ b/avio.c	Tue Jan 30 10:37:52 2007 +0000
@@ -154,7 +154,9 @@
     size= url_seek(h, 0, AVSEEK_SIZE);
     if(size<0){
         pos = url_seek(h, 0, SEEK_CUR);
-        size = url_seek(h, -1, SEEK_END)+1;
+        if ((size = url_seek(h, -1, SEEK_END)) < 0)
+            return size;
+        size++;
         url_seek(h, pos, SEEK_SET);
     }
     return size;