comparison avio.c @ 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 90987914ad57
children eb16c64144ee
comparison
equal deleted inserted replaced
1745:699a422bca90 1746:2649c0a9c037
152 offset_t pos, size; 152 offset_t pos, size;
153 153
154 size= url_seek(h, 0, AVSEEK_SIZE); 154 size= url_seek(h, 0, AVSEEK_SIZE);
155 if(size<0){ 155 if(size<0){
156 pos = url_seek(h, 0, SEEK_CUR); 156 pos = url_seek(h, 0, SEEK_CUR);
157 size = url_seek(h, -1, SEEK_END)+1; 157 if ((size = url_seek(h, -1, SEEK_END)) < 0)
158 return size;
159 size++;
158 url_seek(h, pos, SEEK_SET); 160 url_seek(h, pos, SEEK_SET);
159 } 161 }
160 return size; 162 return size;
161 } 163 }
162 164