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
This commit is contained in:
Ronald S. Bultje 2007-01-30 10:37:52 +00:00 committed by Guillaume Poirier
parent 9dd6c80453
commit eabbae730c

View File

@ -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;