From eabbae730cf732afeb7c2a085e0e5c1e7b1b8614 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 30 Jan 2007 10:37:52 +0000 Subject: 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 Originally committed as revision 7765 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index 44bc3af..0dd7e63 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -154,7 +154,9 @@ offset_t url_filesize(URLContext *h) 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; -- cgit v1.1