Fuzz introspector: ubidi_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
789 789 1 :

['setParaRunsOnly(UBiDi*, char16_t const*, int, unsigned char, UErrorCode*)']

789 789 ubidi_setPara_78 call site: 00047 /src/icu/icu4c/source/common/ubidi.cpp:2573
22 22 1 :

['checkExplicitLevels(UBiDi*, UErrorCode*)']

42 369 ubidi_setPara_78 call site: 00048 /src/icu/icu4c/source/common/ubidi.cpp:2643
6 6 1 :

['getRunFromLogicalIndex(UBiDi*, int)']

6 6 ubidi_getRuns_78 call site: 00156 /src/icu/icu4c/source/common/ubidiln.cpp:694
2 2 1 :

['u_strlen_78']

833 1490 ubidi_setPara_78 call site: 00046 /src/icu/icu4c/source/common/ubidi.cpp:2568
0 101 1 :

['ubidi_getVisualIndex_78']

220 530 testVisual(UBiDi*) call site: 00000 /src/icu/icu4c/source/test/fuzzer/ubidi_fuzzer.cpp:62
0 20 1 :

['ubidi_getMemory_78']

0 34 ubidi_openSized_78 call site: 00032 /src/icu/icu4c/source/common/ubidi.cpp:166
0 14 1 :

['ubidi_close_78']

0 14 ubidi_openSized_78 call site: 00034 /src/icu/icu4c/source/common/ubidi.cpp:177
0 4 1 :

['uprv_malloc_78']

0 4 uprv_realloc_78 call site: 00029 /src/icu/icu4c/source/common/cmemory.cpp:71
0 0 None 220 732 testVisual(UBiDi*) call site: 00000 /src/icu/icu4c/source/test/fuzzer/ubidi_fuzzer.cpp:49
0 0 None 110 319 testVisual(UBiDi*) call site: 00000 /src/icu/icu4c/source/test/fuzzer/ubidi_fuzzer.cpp:73
0 0 None 42 697 ubidi_setPara_78 call site: 00048 /src/icu/icu4c/source/common/ubidi.cpp:2617
0 0 None 42 572 ubidi_setPara_78 call site: 00048 /src/icu/icu4c/source/common/ubidi.cpp:2629

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 icu_78::StringPiece::StringPiece(char const*, int) [function] [call site] 00001
1 icu_78::StringPiece::length() const [function] [call site] 00002
1 icu_78::StringPiece::data() const [function] [call site] 00003
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00004
1 icu_78::StringPiece::data() const [function] [call site] 00005
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00006
1 icu_78::StringPiece::data() const [function] [call site] 00007
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00008
1 icu_78::StringPiece::data() const [function] [call site] 00009
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00010
1 icu_78::StringPiece::data() const [function] [call site] 00011
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00012
1 icu_78::StringPiece::data() const [function] [call site] 00013
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00014
1 icu_78::StringPiece::data() const [function] [call site] 00015
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00016
1 icu_78::StringPiece::data() const [function] [call site] 00017
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00018
1 icu_78::StringPiece::length() const [function] [call site] 00019
1 icu_78::StringPiece::length() const [function] [call site] 00020
1 icu_78::StringPiece::data() const [function] [call site] 00021
1 icu_78::StringPiece::remove_prefix(int) [function] [call site] 00022
1 ubidi_open_78 [function] [call site] 00023
2 ubidi_openSized_78 [function] [call site] 00024
3 U_FAILURE(UErrorCode) [function] [call site] 00025
3 uprv_malloc_78 [function] [call site] 00026
3 ubidi_getMemory_78 [function] [call site] 00027
4 uprv_malloc_78 [function] [call site] 00028
4 uprv_realloc_78 [function] [call site] 00029
5 uprv_malloc_78 [function] [call site] 00030
5 realloc [call site] 00031
3 ubidi_getMemory_78 [function] [call site] 00032
3 ubidi_getMemory_78 [function] [call site] 00033
3 U_SUCCESS(UErrorCode) [function] [call site] 00034
3 ubidi_close_78 [function] [call site] 00035
4 uprv_free_78 [function] [call site] 00036
4 uprv_free_78 [function] [call site] 00037
4 uprv_free_78 [function] [call site] 00038
4 uprv_free_78 [function] [call site] 00039
4 uprv_free_78 [function] [call site] 00040
4 uprv_free_78 [function] [call site] 00041
4 uprv_free_78 [function] [call site] 00042
4 uprv_free_78 [function] [call site] 00043
1 ubidi_setInverse_78 [function] [call site] 00044
1 ubidi_setPara_78 [function] [call site] 00045
2 U_FAILURE(UErrorCode) [function] [call site] 00046
2 u_strlen_78 [function] [call site] 00047
2 setParaRunsOnly(UBiDi*, char16_t const*, int, unsigned char, UErrorCode*) [function] [call site] 00048
3 ubidi_setPara_78 [function] [call site] 00049
4 setParaSuccess(UBiDi*) [function] [call site] 00050
4 ubidi_getMemory_78 [function] [call site] 00051
4 getDirProps(UBiDi*) [function] [call site] 00052
5 firstL_R_AL(UBiDi*) [function] [call site] 00053
6 ubidi_getCustomizedClass_78 [function] [call site] 00054
7 ubidi_getClass_78 [function] [call site] 00055
5 ubidi_getCustomizedClass_78 [function] [call site] 00056
5 checkParaCount(UBiDi*) [function] [call site] 00057
6 ubidi_getMemory_78 [function] [call site] 00058
6 ubidi_getMemory_78 [function] [call site] 00059
4 ubidi_getMemory_78 [function] [call site] 00060
4 resolveExplicitLevels(UBiDi*, UErrorCode*) [function] [call site] 00061
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00062
5 U_FAILURE(UErrorCode) [function] [call site] 00063
5 directionFromFlags(UBiDi*) [function] [call site] 00064
5 bracketInit(UBiDi*, BracketData*) [function] [call site] 00065
6 ubidi_getParaLevelAtIndex_78 [function] [call site] 00066
6 ubidi_getParaLevelAtIndex_78 [function] [call site] 00067
5 bracketProcessB(BracketData*, unsigned char) [function] [call site] 00068
5 bracketProcessChar(BracketData*, int) [function] [call site] 00069
6 bracketProcessClosing(BracketData*, int, int) [function] [call site] 00070
7 fixN0c(BracketData*, int, int, unsigned char) [function] [call site] 00071
8 fixN0c(BracketData*, int, int, unsigned char) [function] [call site] 00072
9 fixN0c(BracketData*, int, int, unsigned char) [function] [call site] 00073
6 u_getBidiPairedBracket_78 [function] [call site] 00074
7 ubidi_getPairedBracket_78 [function] [call site] 00075
8 getMirror(int, unsigned short) [function] [call site] 00076
6 ubidi_getPairedBracketType_78 [function] [call site] 00077
6 bracketAddOpening(BracketData*, char16_t, int) [function] [call site] 00078
7 ubidi_getMemory_78 [function] [call site] 00079
6 bracketAddOpening(BracketData*, char16_t, int) [function] [call site] 00080
6 bracketAddOpening(BracketData*, char16_t, int) [function] [call site] 00081
5 bracketInit(UBiDi*, BracketData*) [function] [call site] 00082
5 bracketProcessBoundary(BracketData*, int, unsigned char, unsigned char) [function] [call site] 00083
5 bracketProcessLRI_RLI(BracketData*, unsigned char) [function] [call site] 00084
5 bracketProcessBoundary(BracketData*, int, unsigned char, unsigned char) [function] [call site] 00085
5 bracketProcessPDI(BracketData*) [function] [call site] 00086
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00087
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00088
5 bracketProcessB(BracketData*, unsigned char) [function] [call site] 00089
5 bracketProcessBoundary(BracketData*, int, unsigned char, unsigned char) [function] [call site] 00090
5 bracketProcessChar(BracketData*, int) [function] [call site] 00091
5 directionFromFlags(UBiDi*) [function] [call site] 00092
4 U_FAILURE(UErrorCode) [function] [call site] 00093
4 checkExplicitLevels(UBiDi*, UErrorCode*) [function] [call site] 00094
5 directionFromFlags(UBiDi*) [function] [call site] 00095
4 U_FAILURE(UErrorCode) [function] [call site] 00096
4 ubidi_getMemory_78 [function] [call site] 00097
4 abort [call site] 00098
4 ubidi_getParaLevelAtIndex_78 [function] [call site] 00099
4 ubidi_getParaLevelAtIndex_78 [function] [call site] 00100
4 resolveImplicitLevels(UBiDi*, int, int, unsigned char, unsigned char) [function] [call site] 00101
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00102
5 lastL_R_AL(UBiDi*) [function] [call site] 00103
6 ubidi_getCustomizedClass_78 [function] [call site] 00104
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00105
6 setLevelsOutsideIsolates(UBiDi*, int, int, unsigned char) [function] [call site] 00106
6 setLevelsOutsideIsolates(UBiDi*, int, int, unsigned char) [function] [call site] 00107
6 addPoint(UBiDi*, int, int) [function] [call site] 00108
7 uprv_malloc_78 [function] [call site] 00109
7 uprv_realloc_78 [function] [call site] 00110
6 addPoint(UBiDi*, int, int) [function] [call site] 00111
6 addPoint(UBiDi*, int, int) [function] [call site] 00112
6 addPoint(UBiDi*, int, int) [function] [call site] 00113
6 addPoint(UBiDi*, int, int) [function] [call site] 00114
6 addPoint(UBiDi*, int, int) [function] [call site] 00115
6 addPoint(UBiDi*, int, int) [function] [call site] 00116
6 addPoint(UBiDi*, int, int) [function] [call site] 00117
6 addPoint(UBiDi*, int, int) [function] [call site] 00118
6 abort [call site] 00119
6 setLevelsOutsideIsolates(UBiDi*, int, int, unsigned char) [function] [call site] 00120
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00121
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00122
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00123
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00124
5 abort [call site] 00125
5 firstL_R_AL_EN_AN(UBiDi*) [function] [call site] 00126
6 ubidi_getCustomizedClass_78 [function] [call site] 00127
5 processPropertySeq(UBiDi*, LevState*, unsigned char, int, int) [function] [call site] 00128
4 ubidi_getParaLevelAtIndex_78 [function] [call site] 00129
4 ubidi_getParaLevelAtIndex_78 [function] [call site] 00130
4 ubidi_getParaLevelAtIndex_78 [function] [call site] 00131
4 resolveImplicitLevels(UBiDi*, int, int, unsigned char, unsigned char) [function] [call site] 00132
4 U_FAILURE(UErrorCode) [function] [call site] 00133
4 adjustWSLevels(UBiDi*) [function] [call site] 00134
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00135
5 ubidi_getParaLevelAtIndex_78 [function] [call site] 00136
4 addPoint(UBiDi*, int, int) [function] [call site] 00137
4 setParaSuccess(UBiDi*) [function] [call site] 00138
3 uprv_malloc_78 [function] [call site] 00139
3 ubidi_setPara_78 [function] [call site] 00140
3 U_FAILURE(UErrorCode) [function] [call site] 00141
3 ubidi_getLevels_78 [function] [call site] 00142
4 U_FAILURE(UErrorCode) [function] [call site] 00143
4 ubidi_getMemory_78 [function] [call site] 00144
3 ubidi_writeReordered_78 [function] [call site] 00145
4 U_FAILURE(UErrorCode) [function] [call site] 00146
4 u_terminateUChars_78 [function] [call site] 00147
5 U_SUCCESS(UErrorCode) [function] [call site] 00148
4 ubidi_countRuns_78 [function] [call site] 00149
5 U_FAILURE(UErrorCode) [function] [call site] 00150
5 ubidi_getRuns_78 [function] [call site] 00151
6 getSingleRun(UBiDi*, unsigned char) [function] [call site] 00152
6 getSingleRun(UBiDi*, unsigned char) [function] [call site] 00153
6 ubidi_getMemory_78 [function] [call site] 00154
6 reorderLine(UBiDi*, unsigned char, unsigned char) [function] [call site] 00155
6 getRunFromLogicalIndex(UBiDi*, int) [function] [call site] 00156
7 abort [call site] 00157
6 getRunFromLogicalIndex(UBiDi*, int) [function] [call site] 00158
5 U_FAILURE(UErrorCode) [function] [call site] 00159
4 U_FAILURE(UErrorCode) [function] [call site] 00160
4 ubidi_getVisualRun_78 [function] [call site] 00161
5 ubidi_getRuns_78 [function] [call site] 00162
5 U_FAILURE(UErrorCode) [function] [call site] 00163
4 doWriteForward(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00164
5 u_charMirror_78 [function] [call site] 00165
6 ubidi_getMirror_78 [function] [call site] 00166
7 getMirror(int, unsigned short) [function] [call site] 00167
5 u_charMirror_78 [function] [call site] 00168
4 doWriteReverse(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00169
5 u_charType_78 [function] [call site] 00170
5 u_charType_78 [function] [call site] 00171
5 u_charMirror_78 [function] [call site] 00172
4 ubidi_getVisualRun_78 [function] [call site] 00173
4 doWriteForward(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00174
4 doWriteReverse(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00175
4 ubidi_getVisualRun_78 [function] [call site] 00176
4 doWriteReverse(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00177
4 doWriteForward(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00178
4 ubidi_getVisualRun_78 [function] [call site] 00179
4 doWriteReverse(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00180
4 doWriteForward(char16_t const*, int, char16_t*, int, unsigned short, UErrorCode*) [function] [call site] 00181
4 u_terminateUChars_78 [function] [call site] 00182
3 ubidi_getVisualMap_78 [function] [call site] 00183
4 U_FAILURE(UErrorCode) [function] [call site] 00184
4 ubidi_countRuns_78 [function] [call site] 00185
4 U_SUCCESS(UErrorCode) [function] [call site] 00186
3 U_FAILURE(UErrorCode) [function] [call site] 00187
3 ubidi_setPara_78 [function] [call site] 00188
3 ubidi_getRuns_78 [function] [call site] 00189
3 U_FAILURE(UErrorCode) [function] [call site] 00190
3 ubidi_getMemory_78 [function] [call site] 00191
3 uprv_free_78 [function] [call site] 00192
1 U_SUCCESS(UErrorCode) [function] [call site] 00193
1 ubidi_writeReordered_78 [function] [call site] 00194
1 U_SUCCESS(UErrorCode) [function] [call site] 00195
1 testVisual(UBiDi*) [function] [call site] 00196
2 ubidi_getProcessedLength_78 [function] [call site] 00197
2 ubidi_getResultLength_78 [function] [call site] 00198
2 ubidi_getVisualMap_78 [function] [call site] 00199
2 ubidi_getLogicalMap_78 [function] [call site] 00200
3 U_FAILURE(UErrorCode) [function] [call site] 00201
3 ubidi_countRuns_78 [function] [call site] 00202
3 U_FAILURE(UErrorCode) [function] [call site] 00203
2 U_FAILURE(UErrorCode) [function] [call site] 00204
2 ubidi_getVisualIndex_78 [function] [call site] 00205
3 U_FAILURE(UErrorCode) [function] [call site] 00206
3 ubidi_getRuns_78 [function] [call site] 00207
2 ubidi_getLogicalRun_78 [function] [call site] 00208
3 ubidi_countRuns_78 [function] [call site] 00209
3 U_FAILURE(UErrorCode) [function] [call site] 00210
3 ubidi_getParaLevelAtIndex_78 [function] [call site] 00211
2 U_FAILURE(UErrorCode) [function] [call site] 00212
2 testGetVisualRun(UBiDi*) [function] [call site] 00213
3 ubidi_getDirection_78 [function] [call site] 00214
3 ubidi_getParaLevel_78 [function] [call site] 00215
3 ubidi_getReorderingMode_78 [function] [call site] 00216
3 ubidi_getReorderingOptions_78 [function] [call site] 00217
3 ubidi_countRuns_78 [function] [call site] 00218
3 U_FAILURE(UErrorCode) [function] [call site] 00219
3 ubidi_getVisualRun_78 [function] [call site] 00220
2 ubidi_getVisualIndex_78 [function] [call site] 00221
2 ubidi_getLogicalIndex_78 [function] [call site] 00222
3 U_FAILURE(UErrorCode) [function] [call site] 00223
3 ubidi_getRuns_78 [function] [call site] 00224
2 ubidi_getLogicalRun_78 [function] [call site] 00225
2 U_FAILURE(UErrorCode) [function] [call site] 00226
2 testGetVisualRun(UBiDi*) [function] [call site] 00227
1 ubidi_writeReordered_78 [function] [call site] 00228
1 ubidi_close_78 [function] [call site] 00229