Changeset c8ef76214a724af64c07fc20d88fcd4dc0459694
- Timestamp:
- 28/06/08 12:32:07
(4 months ago)
- Author:
- Rémi Denis-Courmont <rdenis@simphalempin.com>
- git-committer:
- Rémi Denis-Courmont <rdenis@simphalempin.com> 1214649127 +0300
- git-parent:
[eaa8fb6d9f44b149bdcd4e5252794765e620ad83]
- git-author:
- Rémi Denis-Courmont <rdenis@simphalempin.com> 1214649127 +0300
- Message:
ChunkFind?: fix skipping very large chunks
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r10eab32 |
rc8ef762 |
|
| 383 | 383 | for( ;; ) |
|---|
| 384 | 384 | { |
|---|
| 385 | | int i_size; |
|---|
| | 385 | uint32_t i_size; |
|---|
| 386 | 386 | |
|---|
| 387 | 387 | if( stream_Peek( p_demux->s, &p_peek, 8 ) < 8 ) |
|---|
| 388 | 388 | { |
|---|
| 389 | | msg_Err( p_demux, "cannot peek()" ); |
|---|
| | 389 | msg_Err( p_demux, "cannot peek" ); |
|---|
| 390 | 390 | return VLC_EGENERIC; |
|---|
| 391 | 391 | } |
|---|
| … | … | |
| 393 | 393 | i_size = GetDWLE( p_peek + 4 ); |
|---|
| 394 | 394 | |
|---|
| 395 | | msg_Dbg( p_demux, "chunk: fcc=`%4.4s` size=%d", p_peek, i_size ); |
|---|
| | 395 | msg_Dbg( p_demux, "chunk: fcc=`%4.4s` size=%"PRIu32, p_peek, i_size ); |
|---|
| 396 | 396 | |
|---|
| 397 | 397 | if( !memcmp( p_peek, fcc, 4 ) ) |
|---|
| … | … | |
| 404 | 404 | } |
|---|
| 405 | 405 | |
|---|
| 406 | | i_size = __EVEN( i_size ) + 8; |
|---|
| 407 | | if( stream_Read( p_demux->s, NULL, i_size ) != i_size ) |
|---|
| 408 | | { |
|---|
| | 406 | /* Skip chunk */ |
|---|
| | 407 | if( stream_Read( p_demux->s, NULL, 8 ) != 8 |
|---|
| | 408 | || stream_Read( p_demux->s, NULL, i_size ) != i_size |
|---|
| | 409 | || ((i_size & 1) && stream_Read( p_demux->s, NULL, 1 ) != 1 )) |
|---|
| 409 | 410 | return VLC_EGENERIC; |
|---|
| 410 | | } |
|---|
| 411 | 411 | } |
|---|
| 412 | 412 | } |
|---|