Fuzz introspector: ppmdenc_fuzzer
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
0 0 None 0 121 Ppmd7_EncodeSymbol call site: 00061 /src/lzma-fuzz/sdk/C/Ppmd7Enc.c:149
0 0 None 0 105 Ppmd7_DecodeSymbol call site: 00094 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:150
0 0 None 0 0 LzmaAlloc(ISzAllocconst*,unsignedlong) call site: 00000 /src/lzma-fuzz/./common-alloc.h:36
0 0 None 0 0 InputByteBuffer::Read() call site: 00000 /src/lzma-fuzz/./common-buffer.h:232
0 0 None 0 0 SzAlloc call site: 00000 /src/lzma-fuzz/sdk/C/7zAlloc.c:28
0 0 None 0 0 Ppmd7_Alloc call site: 00003 /src/lzma-fuzz/sdk/C/Ppmd7.c:115
0 0 None 0 0 Ppmd7z_RangeDec_Init call site: 00000 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:16
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00090 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:115
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00096 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:185

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 Ppmd7_Construct [function] [call site] 00001
1 Ppmd7_Alloc [function] [call site] 00002
2 Ppmd7_Free [function] [call site] 00003
1 Ppmd7_Free [function] [call site] 00004
1 Ppmd7_Init [function] [call site] 00005
2 RestartModel [function] [call site] 00006
3 SetSuccessor [function] [call site] 00007
1 OutputByteBuffer::OutputByteBuffer() [function] [call site] 00008
2 OutputByteBuffer::_Write(IByteOut const*, unsigned char) [function] [call site] 00009
3 OutputByteBuffer::Write(unsigned char) [function] [call site] 00010
4 __assert_fail [call site] 00011
1 Ppmd7z_RangeEnc_Init [function] [call site] 00012
1 OutputByteBuffer::stream() [function] [call site] 00013
1 Ppmd7_EncodeSymbol [function] [call site] 00014
2 RangeEnc_Encode [function] [call site] 00015
3 RangeEnc_ShiftLow [function] [call site] 00016
2 Ppmd7_Update1_0 [function] [call site] 00017
3 Rescale [function] [call site] 00018
4 InsertNode [function] [call site] 00019
4 ShrinkUnits [function] [call site] 00020
5 RemoveNode [function] [call site] 00021
5 InsertNode [function] [call site] 00022
5 SplitBlock [function] [call site] 00023
6 InsertNode [function] [call site] 00024
6 InsertNode [function] [call site] 00025
3 NextContext [function] [call site] 00026
4 UpdateModel [function] [call site] 00027
5 SwapStates [function] [call site] 00028
5 CreateSuccessors [function] [call site] 00029
6 SetSuccessor [function] [call site] 00030
6 RemoveNode [function] [call site] 00031
6 AllocUnitsRare [function] [call site] 00032
7 GlueFreeBlocks [function] [call site] 00033
8 InsertNode [function] [call site] 00034
8 InsertNode [function] [call site] 00035
8 InsertNode [function] [call site] 00036
7 RemoveNode [function] [call site] 00037
7 RemoveNode [function] [call site] 00038
7 SplitBlock [function] [call site] 00039
6 SetSuccessor [function] [call site] 00040
5 RestartModel [function] [call site] 00041
5 SetSuccessor [function] [call site] 00042
5 RestartModel [function] [call site] 00043
5 CreateSuccessors [function] [call site] 00044
5 RestartModel [function] [call site] 00045
5 SetSuccessor [function] [call site] 00046
5 AllocUnits [function] [call site] 00047
6 RemoveNode [function] [call site] 00048
6 AllocUnitsRare [function] [call site] 00049
5 RestartModel [function] [call site] 00050
5 InsertNode [function] [call site] 00051
5 AllocUnits [function] [call site] 00052
5 RestartModel [function] [call site] 00053
5 SetSuccessor [function] [call site] 00054
2 RangeEnc_Encode [function] [call site] 00055
2 RangeEnc_Encode [function] [call site] 00056
2 RangeEnc_EncodeBit_0 [function] [call site] 00057
3 RangeEnc_ShiftLow [function] [call site] 00058
2 Ppmd7_UpdateBin [function] [call site] 00059
3 NextContext [function] [call site] 00060
2 RangeEnc_EncodeBit_1 [function] [call site] 00061
3 RangeEnc_ShiftLow [function] [call site] 00062
2 Ppmd7_MakeEscFreq [function] [call site] 00063
2 RangeEnc_Encode [function] [call site] 00064
2 Ppmd7_Update2 [function] [call site] 00065
2 RangeEnc_Encode [function] [call site] 00068
1 OutputByteBuffer::~OutputByteBuffer() [function] [call site] 00069
1 Ppmd7z_RangeEnc_FlushData [function] [call site] 00070
2 RangeEnc_ShiftLow [function] [call site] 00071
1 Ppmd7_Free [function] [call site] 00072
1 OutputByteBuffer::size() const [function] [call site] 00073
1 __assert_fail [call site] 00074
1 OutputByteBuffer::data() const [function] [call site] 00075
1 Ppmd7_Construct [function] [call site] 00076
1 Ppmd7_Alloc [function] [call site] 00077
1 __assert_fail [call site] 00078
1 Ppmd7_Init [function] [call site] 00079
1 Ppmd7z_RangeDec_CreateVTable [function] [call site] 00080
2 Range_GetThreshold [function] [call site] 00081
2 Range_Decode [function] [call site] 00082
3 Range_Normalize [function] [call site] 00083
2 Range_DecodeBit [function] [call site] 00084
3 Range_Normalize [function] [call site] 00085
1 InputByteBuffer::stream() [function] [call site] 00086
1 __assert_fail [call site] 00087
1 Ppmd7_DecodeSymbol [function] [call site] 00088
2 Ppmd7_Update1_0 [function] [call site] 00089
2 Ppmd7_Update1 [function] [call site] 00090
3 SwapStates [function] [call site] 00091
3 NextContext [function] [call site] 00093
2 Ppmd7_UpdateBin [function] [call site] 00094
2 Ppmd7_MakeEscFreq [function] [call site] 00095
2 Ppmd7_Update2 [function] [call site] 00096
1 __assert_fail [call site] 00097
1 __assert_fail [call site] 00098
1 Ppmd7_Free [function] [call site] 00099