diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2007-01-30 10:37:52 +0000 |
---|---|---|
committer | Guillaume Poirier <gpoirier@mplayerhq.hu> | 2007-01-30 10:37:52 +0000 |
commit | eabbae730cf732afeb7c2a085e0e5c1e7b1b8614 (patch) | |
tree | effc296a4e3a2fb1a3374598dfb63e20a8d971f6 /libavformat/avio.c | |
parent | 9dd6c804537d98f795986867755e285d1091d072 (diff) | |
download | ffmpeg-eabbae730cf732afeb7c2a085e0e5c1e7b1b8614.tar.gz |
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
Diffstat (limited to 'libavformat/avio.c')
-rw-r--r-- | libavformat/avio.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index 44bc3afeaf..0dd7e63f2a 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; |