Mercurial > libavformat.hg
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;