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: 00058 /src/lzma-fuzz/sdk/C/Ppmd7Enc.c:149
0 0 None 0 105 Ppmd7_DecodeSymbol call site: 00087 /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: 00079 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:16
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00083 /src/lzma-fuzz/sdk/C/Ppmd7Dec.c:115
0 0 None 0 0 Ppmd7_DecodeSymbol call site: 00089 /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
1 Ppmd7z_RangeEnc_Init [function] [call site] 00009
1 OutputByteBuffer::stream() [function] [call site] 00010
1 Ppmd7_EncodeSymbol [function] [call site] 00011
2 RangeEnc_Encode [function] [call site] 00012
3 RangeEnc_ShiftLow [function] [call site] 00013
2 Ppmd7_Update1_0 [function] [call site] 00014
3 Rescale [function] [call site] 00015
4 InsertNode [function] [call site] 00016
4 ShrinkUnits [function] [call site] 00017
5 RemoveNode [function] [call site] 00018
5 InsertNode [function] [call site] 00019
5 SplitBlock [function] [call site] 00020
6 InsertNode [function] [call site] 00021
6 InsertNode [function] [call site] 00022
3 NextContext [function] [call site] 00023
4 UpdateModel [function] [call site] 00024
5 SwapStates [function] [call site] 00025
5 CreateSuccessors [function] [call site] 00026
6 SetSuccessor [function] [call site] 00027
6 RemoveNode [function] [call site] 00028
6 AllocUnitsRare [function] [call site] 00029
7 GlueFreeBlocks [function] [call site] 00030
8 InsertNode [function] [call site] 00031
8 InsertNode [function] [call site] 00032
8 InsertNode [function] [call site] 00033
7 RemoveNode [function] [call site] 00034
7 RemoveNode [function] [call site] 00035
7 SplitBlock [function] [call site] 00036
6 SetSuccessor [function] [call site] 00037
5 RestartModel [function] [call site] 00038
5 SetSuccessor [function] [call site] 00039
5 RestartModel [function] [call site] 00040
5 CreateSuccessors [function] [call site] 00041
5 RestartModel [function] [call site] 00042
5 SetSuccessor [function] [call site] 00043
5 AllocUnits [function] [call site] 00044
6 RemoveNode [function] [call site] 00045
6 AllocUnitsRare [function] [call site] 00046
5 RestartModel [function] [call site] 00047
5 InsertNode [function] [call site] 00048
5 AllocUnits [function] [call site] 00049
5 RestartModel [function] [call site] 00050
5 SetSuccessor [function] [call site] 00051
2 RangeEnc_Encode [function] [call site] 00052
2 RangeEnc_Encode [function] [call site] 00053
2 RangeEnc_EncodeBit_0 [function] [call site] 00054
3 RangeEnc_ShiftLow [function] [call site] 00055
2 Ppmd7_UpdateBin [function] [call site] 00056
3 NextContext [function] [call site] 00057
2 RangeEnc_EncodeBit_1 [function] [call site] 00058
3 RangeEnc_ShiftLow [function] [call site] 00059
2 Ppmd7_MakeEscFreq [function] [call site] 00060
2 RangeEnc_Encode [function] [call site] 00061
2 Ppmd7_Update2 [function] [call site] 00062
2 RangeEnc_Encode [function] [call site] 00065
1 OutputByteBuffer::~OutputByteBuffer() [function] [call site] 00066
1 Ppmd7z_RangeEnc_FlushData [function] [call site] 00067
2 RangeEnc_ShiftLow [function] [call site] 00068
1 Ppmd7_Free [function] [call site] 00069
1 OutputByteBuffer::size() const [function] [call site] 00070
1 __assert_fail [call site] 00071
1 OutputByteBuffer::data() const [function] [call site] 00072
1 Ppmd7_Construct [function] [call site] 00073
1 Ppmd7_Alloc [function] [call site] 00074
1 __assert_fail [call site] 00075
1 Ppmd7_Init [function] [call site] 00076
1 Ppmd7z_RangeDec_CreateVTable [function] [call site] 00077
1 InputByteBuffer::stream() [function] [call site] 00078
1 Ppmd7z_RangeDec_Init [function] [call site] 00079
1 __assert_fail [call site] 00080
1 Ppmd7_DecodeSymbol [function] [call site] 00081
2 Ppmd7_Update1_0 [function] [call site] 00082
2 Ppmd7_Update1 [function] [call site] 00083
3 SwapStates [function] [call site] 00084
3 NextContext [function] [call site] 00086
2 Ppmd7_UpdateBin [function] [call site] 00087
2 Ppmd7_MakeEscFreq [function] [call site] 00088
2 Ppmd7_Update2 [function] [call site] 00089
1 __assert_fail [call site] 00090
1 __assert_fail [call site] 00091
1 Ppmd7_Free [function] [call site] 00092