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