Changeset 00f78a1e82c9e1d6948206fba58159cde39998dd
- Timestamp:
- 10/07/05 10:13:48
(3 years ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1120983228 +0000
- git-parent:
[5585f98e36b6dd1ef123bec4b8854fa40e09adbb]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1120983228 +0000
- Message:
strncmp => memcmp (refs #258)
ogg.c : FIXME FIXME FIXME
I don't know Ogg format well, but don't we have a possible out-of-bound
read at line 1346 and following ??
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rfe087a3 |
r00f78a1 |
|
| 79 | 79 | /* Check if we are dealing with a WAV file */ |
|---|
| 80 | 80 | if( stream_Peek( p_demux->s, &p_peek, 20 ) == 20 && |
|---|
| 81 | | !strncmp( p_peek, "RIFF", 4 ) && !strncmp( &p_peek[8], "WAVE", 4 ) ) |
|---|
| | 81 | !memcmp( p_peek, "RIFF", 4 ) && !memcmp( &p_peek[8], "WAVE", 4 ) ) |
|---|
| 82 | 82 | { |
|---|
| 83 | 83 | int i_size; |
|---|
| … | … | |
| 85 | 85 | /* Find the wave format header */ |
|---|
| 86 | 86 | i_peek = 20; |
|---|
| 87 | | while( strncmp( p_peek + i_peek - 8, "fmt ", 4 ) ) |
|---|
| | 87 | while( memcmp( p_peek + i_peek - 8, "fmt ", 4 ) ) |
|---|
| 88 | 88 | { |
|---|
| 89 | 89 | i_size = GetDWLE( p_peek + i_peek - 4 ); |
|---|
| … | … | |
| 111 | 111 | |
|---|
| 112 | 112 | /* Skip the wave header */ |
|---|
| 113 | | while( strncmp( p_peek + i_peek - 8, "data", 4 ) ) |
|---|
| | 113 | while( memcmp( p_peek + i_peek - 8, "data", 4 ) ) |
|---|
| 114 | 114 | { |
|---|
| 115 | 115 | i_size = GetDWLE( p_peek + i_peek - 4 ); |
|---|
| rfe087a3 |
r00f78a1 |
|
| 184 | 184 | /* Check if we are dealing with an ogg stream */ |
|---|
| 185 | 185 | if( stream_Peek( p_demux->s, &p_peek, 4 ) < 4 ) return VLC_EGENERIC; |
|---|
| 186 | | if( strcmp( p_demux->psz_demux, "ogg" ) && strncmp( p_peek, "OggS", 4 ) ) |
|---|
| | 186 | if( strcmp( p_demux->psz_demux, "ogg" ) && memcmp( p_peek, "OggS", 4 ) ) |
|---|
| 187 | 187 | { |
|---|
| 188 | 188 | return VLC_EGENERIC; |
|---|
| … | … | |
| 277 | 277 | if( p_stream->fmt.i_codec == VLC_FOURCC('t','h','e','o') && |
|---|
| 278 | 278 | oggpacket.bytes >= 7 && |
|---|
| 279 | | ! strncmp( &oggpacket.packet[1], "theora", 6 ) ) |
|---|
| | 279 | ! memcmp( &oggpacket.packet[1], "theora", 6 ) ) |
|---|
| 280 | 280 | { |
|---|
| 281 | 281 | Ogg_ReadTheoraHeader( p_stream, &oggpacket ); |
|---|
| … | … | |
| 284 | 284 | else if( p_stream->fmt.i_codec == VLC_FOURCC('v','o','r','b') && |
|---|
| 285 | 285 | oggpacket.bytes >= 7 && |
|---|
| 286 | | ! strncmp( &oggpacket.packet[1], "vorbis", 6 ) ) |
|---|
| | 286 | ! memcmp( &oggpacket.packet[1], "vorbis", 6 ) ) |
|---|
| 287 | 287 | { |
|---|
| 288 | 288 | Ogg_ReadVorbisHeader( p_stream, &oggpacket ); |
|---|
| … | … | |
| 405 | 405 | demux_sys_t *p_ogg = p_demux->p_sys ; |
|---|
| 406 | 406 | int i_read = 0; |
|---|
| 407 | | byte_t *p_buffer; |
|---|
| | 407 | char *p_buffer; |
|---|
| 408 | 408 | |
|---|
| 409 | 409 | while( ogg_sync_pageout( &p_ogg->oy, p_oggpage ) != 1 ) |
|---|
| … | … | |
| 485 | 485 | |
|---|
| 486 | 486 | if( p_oggpacket->bytes >= 7 && |
|---|
| 487 | | ! strncmp ( &p_oggpacket->packet[0], "Annodex", 7 ) ) |
|---|
| | 487 | ! memcmp ( &p_oggpacket->packet[0], "Annodex", 7 ) ) |
|---|
| 488 | 488 | { |
|---|
| 489 | 489 | /* it's an Annodex packet -- skip it (do nothing) */ |
|---|
| … | … | |
| 491 | 491 | } |
|---|
| 492 | 492 | else if( p_oggpacket->bytes >= 7 && |
|---|
| 493 | | ! strncmp ( &p_oggpacket->packet[0], "AnxData", 7 ) ) |
|---|
| | 493 | ! memcmp ( &p_oggpacket->packet[0], "AnxData", 7 ) ) |
|---|
| 494 | 494 | { |
|---|
| 495 | 495 | /* it's an AnxData packet -- skip it (do nothing) */ |
|---|
| … | … | |
| 757 | 757 | /* Check for Vorbis header */ |
|---|
| 758 | 758 | if( oggpacket.bytes >= 7 && |
|---|
| 759 | | ! strncmp( &oggpacket.packet[1], "vorbis", 6 ) ) |
|---|
| | 759 | ! memcmp( &oggpacket.packet[1], "vorbis", 6 ) ) |
|---|
| 760 | 760 | { |
|---|
| 761 | 761 | Ogg_ReadVorbisHeader( p_stream, &oggpacket ); |
|---|
| … | … | |
| 764 | 764 | /* Check for Speex header */ |
|---|
| 765 | 765 | else if( oggpacket.bytes >= 7 && |
|---|
| 766 | | ! strncmp( &oggpacket.packet[0], "Speex", 5 ) ) |
|---|
| | 766 | ! memcmp( &oggpacket.packet[0], "Speex", 5 ) ) |
|---|
| 767 | 767 | { |
|---|
| 768 | 768 | Ogg_ReadSpeexHeader( p_stream, &oggpacket ); |
|---|
| … | … | |
| 774 | 774 | /* Check for Flac header (< version 1.1.1) */ |
|---|
| 775 | 775 | else if( oggpacket.bytes >= 4 && |
|---|
| 776 | | ! strncmp( &oggpacket.packet[0], "fLaC", 4 ) ) |
|---|
| | 776 | ! memcmp( &oggpacket.packet[0], "fLaC", 4 ) ) |
|---|
| 777 | 777 | { |
|---|
| 778 | 778 | msg_Dbg( p_demux, "found FLAC header" ); |
|---|
| … | … | |
| 788 | 788 | /* Check for Flac header (>= version 1.1.1) */ |
|---|
| 789 | 789 | else if( oggpacket.bytes >= 13 && oggpacket.packet[0] ==0x7F && |
|---|
| 790 | | ! strncmp( &oggpacket.packet[1], "FLAC", 4 ) && |
|---|
| 791 | | ! strncmp( &oggpacket.packet[9], "fLaC", 4 ) ) |
|---|
| | 790 | ! memcmp( &oggpacket.packet[1], "FLAC", 4 ) && |
|---|
| | 791 | ! memcmp( &oggpacket.packet[9], "fLaC", 4 ) ) |
|---|
| 792 | 792 | { |
|---|
| 793 | 793 | int i_packets = ((int)oggpacket.packet[7]) << 8 | |
|---|
| … | … | |
| 807 | 807 | /* Check for Theora header */ |
|---|
| 808 | 808 | else if( oggpacket.bytes >= 7 && |
|---|
| 809 | | ! strncmp( &oggpacket.packet[1], "theora", 6 ) ) |
|---|
| | 809 | ! memcmp( &oggpacket.packet[1], "theora", 6 ) ) |
|---|
| 810 | 810 | { |
|---|
| 811 | 811 | Ogg_ReadTheoraHeader( p_stream, &oggpacket ); |
|---|
| … | … | |
| 817 | 817 | /* Check for Tarkin header */ |
|---|
| 818 | 818 | else if( oggpacket.bytes >= 7 && |
|---|
| 819 | | ! strncmp( &oggpacket.packet[1], "tarkin", 6 ) ) |
|---|
| | 819 | ! memcmp( &oggpacket.packet[1], "tarkin", 6 ) ) |
|---|
| 820 | 820 | { |
|---|
| 821 | 821 | oggpack_buffer opb; |
|---|
| … | … | |
| 837 | 837 | /* Check for Annodex header */ |
|---|
| 838 | 838 | else if( oggpacket.bytes >= 7 && |
|---|
| 839 | | ! strncmp( &oggpacket.packet[0], "Annodex", 7 ) ) |
|---|
| | 839 | ! memcmp( &oggpacket.packet[0], "Annodex", 7 ) ) |
|---|
| 840 | 840 | { |
|---|
| 841 | 841 | Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream, |
|---|
| … | … | |
| 847 | 847 | /* Check for Annodex header */ |
|---|
| 848 | 848 | else if( oggpacket.bytes >= 7 && |
|---|
| 849 | | ! strncmp( &oggpacket.packet[0], "AnxData", 7 ) ) |
|---|
| | 849 | ! memcmp( &oggpacket.packet[0], "AnxData", 7 ) ) |
|---|
| 850 | 850 | { |
|---|
| 851 | 851 | Ogg_ReadAnnodexHeader( VLC_OBJECT(p_demux), p_stream, |
|---|
| … | … | |
| 853 | 853 | } |
|---|
| 854 | 854 | else if( oggpacket.bytes >= 142 && |
|---|
| 855 | | !strncmp( &oggpacket.packet[1], |
|---|
| | 855 | !memcmp( &oggpacket.packet[1], |
|---|
| 856 | 856 | "Direct Show Samples embedded in Ogg", 35 )) |
|---|
| 857 | 857 | { |
|---|
| … | … | |
| 1311 | 1311 | ogg_packet *p_oggpacket ) |
|---|
| 1312 | 1312 | { |
|---|
| 1313 | | if( ! strncmp( &p_oggpacket->packet[0], "Annodex", 7 ) ) |
|---|
| | 1313 | if( ! memcmp( &p_oggpacket->packet[0], "Annodex", 7 ) ) |
|---|
| 1314 | 1314 | { |
|---|
| 1315 | 1315 | oggpack_buffer opb; |
|---|
| … | … | |
| 1329 | 1329 | timebase_denominator = GetQWLE( &p_oggpacket->packet[24] ); |
|---|
| 1330 | 1330 | } |
|---|
| 1331 | | else if( ! strncmp( &p_oggpacket->packet[0], "AnxData", 7 ) ) |
|---|
| | 1331 | else if( ! memcmp( &p_oggpacket->packet[0], "AnxData", 7 ) ) |
|---|
| 1332 | 1332 | { |
|---|
| 1333 | 1333 | uint64_t granule_rate_numerator; |
|---|