Fuzz introspector: cmsIT8_load_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
14 14 3 :

['InitContextMutex', '_cmsEnterCriticalSectionPrimitive', '_cmsLeaveCriticalSectionPrimitive']

14 14 _cmsGetContext call site: 00012 /src/lcms/src/cmsplugin.c:720
2 2 1 :

['strncpy']

2 2 BuildAbsolutePath call site: 00000 /src/lcms/src/cmscgats.c:499
2 2 1 :

['fclose']

2 2 NextCh call site: 00071 /src/lcms/src/cmscgats.c:557
0 32 2 :

['AllocTable', 'SynError']

0 32 cmsIT8SetTable call site: 00258 /src/lcms/src/cmscgats.c:1360
0 30 1 :

['SynError']

0 30 GetTable call site: 00032 /src/lcms/src/cmscgats.c:1099
0 30 1 :

['SynError']

0 30 AddToList call site: 00045 /src/lcms/src/cmscgats.c:1267
0 30 1 :

['SynError']

0 30 AddToList call site: 00048 /src/lcms/src/cmscgats.c:1280
0 29 1 :

['_cmsFree']

0 29 AllocBigBlock call site: 00023 /src/lcms/src/cmscgats.c:1150
0 29 1 :

['cmsSignalError']

0 29 WriteStr call site: 00265 /src/lcms/src/cmscgats.c:1726
0 29 1 :

['cmsSignalError']

0 29 _cmsContextGetClientChunk call site: 00007 /src/lcms/src/cmsplugin.c:752
0 6 1 :

['cmsstrcasecmp']

0 6 IsAvailableOnList call site: 00041 /src/lcms/src/cmscgats.c:1235
0 0 None 64 397 WriteData call site: 00296 /src/lcms/src/cmscgats.c:1879

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 cmsIT8LoadFromMem [function] [call site] 00001
2 __assert_fail [call site] 00002
2 __assert_fail [call site] 00003
2 IsMyBlock [function] [call site] 00004
2 cmsIT8Alloc [function] [call site] 00005
3 _cmsMallocZero [function] [call site] 00006
4 _cmsContextGetClientChunk [function] [call site] 00007
5 cmsSignalError [function] [call site] 00008
6 vsnprintf [call site] 00009
6 _cmsContextGetClientChunk [function] [call site] 00010
7 __assert_fail [call site] 00011
7 _cmsGetContext [function] [call site] 00012
8 InitContextMutex [function] [call site] 00013
8 _cmsEnterCriticalSectionPrimitive [function] [call site] 00014
9 pthread_mutex_lock [call site] 00015
8 _cmsLeaveCriticalSectionPrimitive [function] [call site] 00016
9 pthread_mutex_unlock [call site] 00017
8 _cmsLeaveCriticalSectionPrimitive [function] [call site] 00018
3 AllocTable [function] [call site] 00019
3 AllocChunk [function] [call site] 00020
4 AllocBigBlock [function] [call site] 00021
5 _cmsMallocZero [function] [call site] 00022
5 _cmsMallocZero [function] [call site] 00023
5 _cmsFree [function] [call site] 00024
6 _cmsContextGetClientChunk [function] [call site] 00025
3 StringAlloc [function] [call site] 00026
4 AllocChunk [function] [call site] 00027
4 AllocChunk [function] [call site] 00028
3 StringAlloc [function] [call site] 00029
3 strcpy [call site] 00030
3 cmsIT8SetSheetType [function] [call site] 00031
4 GetTable [function] [call site] 00032
5 SynError [function] [call site] 00033
6 vsnprintf [call site] 00034
6 snprintf [call site] 00035
6 cmsSignalError [function] [call site] 00036
4 strncpy [call site] 00037
3 AddAvailableProperty [function] [call site] 00038
4 AddToList [function] [call site] 00039
5 IsAvailableOnList [function] [call site] 00040
6 cmsstrcasecmp [function] [call site] 00041
7 toupper [call site] 00042
7 toupper [call site] 00043
6 cmsstrcasecmp [function] [call site] 00044
5 cmsstrcasecmp [function] [call site] 00045
5 cmsstrcasecmp [function] [call site] 00046
5 AllocChunk [function] [call site] 00048
5 AllocString [function] [call site] 00050
6 strlen [call site] 00051
6 AllocChunk [function] [call site] 00052
5 AllocString [function] [call site] 00053
5 AllocString [function] [call site] 00054
3 AddAvailableSampleID [function] [call site] 00055
4 AddToList [function] [call site] 00056
2 _cmsMalloc [function] [call site] 00057
3 _cmsContextGetClientChunk [function] [call site] 00058
2 strncpy [call site] 00064
2 strncpy [call site] 00065
2 ParseIT8 [function] [call site] 00066
3 ReadType [function] [call site] 00067
4 isseparator [function] [call site] 00068
4 NextCh [function] [call site] 00069
5 fgetc [call site] 00070
5 feof [call site] 00071
5 fclose [call site] 00072
3 InSymbol [function] [call site] 00074
4 isseparator [function] [call site] 00075
4 isfirstidchar [function] [call site] 00077
5 __ctype_b_loc [call site] 00078
5 ismiddle [function] [call site] 00079
6 isseparator [function] [call site] 00080
4 StringClear [function] [call site] 00081
4 StringAppend [function] [call site] 00082
5 AllocChunk [function] [call site] 00083
4 isidchar [function] [call site] 00085
5 __ctype_b_loc [call site] 00086
4 StringPtr [function] [call site] 00088
4 __ctype_b_loc [call site] 00089
4 toupper [call site] 00092
4 __ctype_b_loc [call site] 00094
4 toupper [call site] 00095
4 toupper [call site] 00098
4 __ctype_b_loc [call site] 00102
4 ReadReal [function] [call site] 00103
5 __ctype_b_loc [call site] 00104
5 __ctype_b_loc [call site] 00107
5 toupper [call site] 00111
5 __ctype_b_loc [call site] 00115
4 snprintf [call site] 00121
4 snprintf [call site] 00122
4 StringClear [function] [call site] 00123
4 StringCat [function] [call site] 00124
5 StringAppend [function] [call site] 00125
4 StringAppend [function] [call site] 00126
4 InStringSymbol [function] [call site] 00145
4 AllocChunk [function] [call site] 00149
4 StringPtr [function] [call site] 00151
4 fopen [call site] 00153
3 DataSection [function] [call site] 00173
4 CheckEOLN [function] [call site] 00176
4 AllocateDataSet [function] [call site] 00177
5 cmsIT8GetProperty [function] [call site] 00179
5 cmsIT8GetProperty [function] [call site] 00181
5 AllocChunk [function] [call site] 00183
4 StringPtr [function] [call site] 00185
4 StringPtr [function] [call site] 00186
4 GetVal [function] [call site] 00187
5 StringPtr [function] [call site] 00188
5 strncpy [call site] 00189
5 snprintf [call site] 00190
5 snprintf [call site] 00191
5 StringPtr [function] [call site] 00192
5 strncpy [call site] 00193
4 SetData [function] [call site] 00195
5 AllocateDataSet [function] [call site] 00197
5 AllocString [function] [call site] 00200
3 AllocTable [function] [call site] 00207
3 isseparator [function] [call site] 00208
3 StringPtr [function] [call site] 00210
3 cmsIT8SetSheetType [function] [call site] 00212
3 StringPtr [function] [call site] 00213
3 HeaderSection [function] [call site] 00216
4 AddAvailableProperty [function] [call site] 00219
4 AddAvailableSampleID [function] [call site] 00223
4 StringPtr [function] [call site] 00225
4 strncpy [call site] 00226
4 IsAvailableOnList [function] [call site] 00227
4 AddAvailableProperty [function] [call site] 00228
4 strchr [call site] 00233
4 strrchr [call site] 00234
4 strlen [call site] 00236
4 strspn [call site] 00237
4 strspn [call site] 00238
2 cmsIT8Free [function] [call site] 00244
2 CookPointers [function] [call site] 00245
3 cmsstrcasecmp [function] [call site] 00247
3 cmsstrcasecmp [function] [call site] 00248
3 IsAvailableOnList [function] [call site] 00251
3 snprintf [call site] 00252
1 getpid [call site] 00255
1 cmsIT8SaveToFile [function] [call site] 00256
2 fopen [call site] 00257
2 cmsIT8SetTable [function] [call site] 00258
2 WriteHeader [function] [call site] 00261
3 WriteStr [function] [call site] 00263
4 strlen [call site] 00264
4 fwrite [call site] 00265
4 cmsSignalError [function] [call site] 00266
4 cmsSignalError [function] [call site] 00267
3 Writef [function] [call site] 00270
4 vsnprintf [call site] 00271
3 IsAvailableOnList [function] [call site] 00275
3 AddAvailableProperty [function] [call site] 00276
2 WriteDataFormat [function] [call site] 00287
2 fclose [call site] 00308
1 cmsIT8Free [function] [call site] 00309