Mercurial > audlegacy-plugins
diff src/aac/mp4ff/mp4util.c @ 451:5826c77f4acf trunk
[svn] - various overflow and security-related fixes from XMMS2 (mainly Juho Vaha-Herttua, et al)
| author | nenolod |
|---|---|
| date | Wed, 17 Jan 2007 00:56:53 -0800 |
| parents | 3da1b8942b8b |
| children | 3d6a2732f26a |
line wrap: on
line diff
--- a/src/aac/mp4ff/mp4util.c Wed Jan 17 00:29:28 2007 -0800 +++ b/src/aac/mp4ff/mp4util.c Wed Jan 17 00:56:53 2007 -0800 @@ -30,13 +30,20 @@ int32_t mp4ff_read_data(mp4ff_t *f, uint8_t *data, uint32_t size) { - int32_t result = 1; - - result = f->stream->read(f->stream->user_data, data, size); + int32_t result; + uint32_t read = 0; - f->current_position += size; + while (read < size) { + result = f->stream->read(f->stream->user_data, data+read, size-read); + if (result <= 0) { + break; + } + read += result; + } - return result; + f->current_position += read; + + return read; } int32_t mp4ff_truncate(mp4ff_t * f)
