Fuzz introspector: speex_decode_fuzzer_float
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2 14 2 :

['ogg_stream_clear', 'realloc']

2 14 _os_body_expand call site: 00041 /src/ogg/src/framing.c:185
2 2 1 :

['realloc']

2 6 ogg_sync_buffer call site: 00008 /src/ogg/src/framing.c:608
2 2 1 :

['speex_warning']

2 2 speex_bits_read_from call site: 00095 /src/speex/libspeex/bits.c:119
0 7 1 :

['compute_rms16']

0 36 nb_decode call site: 00000 /src/speex/libspeex/nb_celp.c:1727
0 2 1 :

['bw_lpc']

0 21 sb_decode_lost call site: 00000 /src/speex/libspeex/sb_celp.c:1181
0 0 None 18 251 nb_decode call site: 00000 /src/speex/libspeex/nb_celp.c:1368
0 0 None 18 193 nb_decode call site: 00000 /src/speex/libspeex/nb_celp.c:1362
0 0 None 18 172 nb_decode call site: 00000 /src/speex/libspeex/nb_celp.c:1485
0 0 None 14 148 nb_decode call site: 00000 /src/speex/libspeex/nb_celp.c:1579
0 0 None 4 127 sb_decode call site: 00000 /src/speex/libspeex/sb_celp.c:1249
0 0 None 4 60 sb_decode call site: 00000 /src/speex/libspeex/sb_celp.c:1389
0 0 None 2 8 _os_lacing_expand call site: 00037 /src/ogg/src/framing.c:216

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 ogg_sync_init [function] [call site] 00001
1 speex_bits_init [function] [call site] 00002
2 speex_alloc [function] [call site] 00003
3 calloc [call site] 00004
2 speex_bits_reset [function] [call site] 00005
1 ogg_sync_buffer [function] [call site] 00006
2 ogg_sync_check [function] [call site] 00007
2 ogg_sync_clear [function] [call site] 00008
2 realloc [call site] 00009
2 ogg_sync_clear [function] [call site] 00010
1 ogg_sync_wrote [function] [call site] 00011
2 ogg_sync_check [function] [call site] 00012
1 ogg_sync_pageout [function] [call site] 00013
2 ogg_sync_check [function] [call site] 00014
2 ogg_sync_pageseek [function] [call site] 00015
3 ogg_sync_check [function] [call site] 00016
3 memcmp [call site] 00017
3 ogg_page_checksum_set [function] [call site] 00018
4 _os_update_crc [function] [call site] 00019
4 _os_update_crc [function] [call site] 00020
3 memcmp [call site] 00021
3 memchr [call site] 00022
1 ogg_page_serialno [function] [call site] 00023
1 ogg_page_serialno [function] [call site] 00024
1 ogg_page_serialno [function] [call site] 00025
1 ogg_stream_pagein [function] [call site] 00026
2 ogg_page_version [function] [call site] 00027
2 ogg_page_continued [function] [call site] 00028
2 ogg_page_bos [function] [call site] 00029
2 ogg_page_eos [function] [call site] 00030
2 ogg_page_granulepos [function] [call site] 00031
2 ogg_page_serialno [function] [call site] 00032
2 ogg_page_pageno [function] [call site] 00033
2 ogg_stream_check [function] [call site] 00034
2 _os_lacing_expand [function] [call site] 00035
3 ogg_stream_clear [function] [call site] 00036
3 realloc [call site] 00037
3 ogg_stream_clear [function] [call site] 00038
3 realloc [call site] 00039
3 ogg_stream_clear [function] [call site] 00040
2 _os_body_expand [function] [call site] 00041
3 ogg_stream_clear [function] [call site] 00042
3 realloc [call site] 00043
3 ogg_stream_clear [function] [call site] 00044
1 ogg_page_granulepos [function] [call site] 00045
1 ogg_page_packets [function] [call site] 00046
1 cleanup(void*, SpeexBits*, int, ogg_stream_state*, ogg_sync_state*) [function] [call site] 00047
2 speex_decoder_destroy [function] [call site] 00048
2 speex_bits_destroy [function] [call site] 00049
3 speex_free [function] [call site] 00050
2 ogg_stream_clear [function] [call site] 00051
2 ogg_sync_clear [function] [call site] 00052
1 cleanup(void*, SpeexBits*, int, ogg_stream_state*, ogg_sync_state*) [function] [call site] 00053
1 ogg_page_eos [function] [call site] 00054
1 cleanup(void*, SpeexBits*, int, ogg_stream_state*, ogg_sync_state*) [function] [call site] 00055
1 ogg_stream_packetout [function] [call site] 00056
2 ogg_stream_check [function] [call site] 00057
2 _packetout [function] [call site] 00058
1 memcmp [call site] 00059
1 process_header(ogg_packet*, int, int*, int*, int*, int*, int*, SpeexStereoState*, int*) [function] [call site] 00060
2 speex_lib_get_mode [function] [call site] 00077
2 speex_decoder_init [function] [call site] 00078
2 speex_decoder_ctl [function] [call site] 00079
2 speex_decoder_ctl [function] [call site] 00080
2 speex_decoder_destroy [function] [call site] 00081
2 speex_decoder_ctl [function] [call site] 00082
2 speex_decoder_destroy [function] [call site] 00083
2 speex_std_stereo_request_handler [function] [call site] 00084
3 speex_bits_unpack_unsigned [function] [call site] 00085
3 speex_bits_unpack_unsigned [function] [call site] 00086
3 exp [call site] 00087
3 speex_bits_unpack_unsigned [function] [call site] 00088
2 speex_decoder_ctl [function] [call site] 00089
2 speex_decoder_destroy [function] [call site] 00090
1 cleanup(void*, SpeexBits*, int, ogg_stream_state*, ogg_sync_state*) [function] [call site] 00091
1 speex_decoder_ctl [function] [call site] 00092
1 speex_bits_read_from [function] [call site] 00093
2 speex_notify [function] [call site] 00094
2 speex_realloc [function] [call site] 00095
3 realloc [call site] 00096
2 speex_warning [function] [call site] 00097
2 speex_warning [function] [call site] 00098
1 speex_decode [function] [call site] 00099
1 speex_bits_remaining [function] [call site] 00100
1 speex_decode_stereo [function] [call site] 00101
2 sqrt [call site] 00102
2 sqrt [call site] 00103
1 cleanup(void*, SpeexBits*, int, ogg_stream_state*, ogg_sync_state*) [function] [call site] 00104