Changeset c8ef76214a724af64c07fc20d88fcd4dc0459694

Show
Ignore:
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
  • modules/demux/wav.c

    r10eab32 rc8ef762  
    383383    for( ;; ) 
    384384    { 
    385         int i_size; 
     385        uint32_t i_size; 
    386386 
    387387        if( stream_Peek( p_demux->s, &p_peek, 8 ) < 8 ) 
    388388        { 
    389             msg_Err( p_demux, "cannot peek()" ); 
     389            msg_Err( p_demux, "cannot peek" ); 
    390390            return VLC_EGENERIC; 
    391391        } 
     
    393393        i_size = GetDWLE( p_peek + 4 ); 
    394394 
    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 ); 
    396396 
    397397        if( !memcmp( p_peek, fcc, 4 ) ) 
     
    404404        } 
    405405 
    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 )) 
    409410            return VLC_EGENERIC; 
    410         } 
    411411    } 
    412412}