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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
14 150 jsonpickle.unpickler.Unpickler._restore_object_instance_variables call site: 00150 jsonpickle.unpickler.Unpickler._restore_state
14 220 jsonpickle.unpickler.Unpickler._restore_reduce call site: 00220 jsonpickle.unpickler.Unpickler._swapref
10 188 jsonpickle.unpickler.Unpickler._restore_dict call site: 00188 jsonpickle.unpickler.Unpickler._restore
7 235 jsonpickle.unpickler.Unpickler._restore call site: 00235 jsonpickle.unpickler.loadrepr
6 15 jsonpickle.unpickler.Unpickler.restore call site: 00015 jsonpickle.unpickler.Unpickler.register_classes
5 119 jsonpickle.unpickler.Unpickler._restore_from_dict call site: 00119 jsonpickle.unpickler.decode
5 135 jsonpickle.unpickler.Unpickler._restore_from_dict call site: 00135 .setattr
4 25 jsonpickle.util.translate_module_name call site: 00025 jsonpickle.util.importable_name
4 71 jsonpickle.unpickler.loadclass call site: 00071 jsonpickle.unpickler.Unpickler._mkref
4 129 jsonpickle.unpickler.Unpickler._restore_from_dict call site: 00129 .hasattr
3 7 jsonpickle.unpickler.decode call site: 00007 jsonpickle.util._is_function
3 214 jsonpickle.unpickler.Unpickler._restore_reduce call site: 00214 jsonpickle.unpickler.Unpickler._restore

Fuzzer calltree

0 ...jsonpickle.fuzzing.fuzz-targets.fuzz_unpickle.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00002
1 fdp.remaining_bytes [function] [call site] 00003
1 fdp.ConsumeIntInRange [function] [call site] 00004
1 jsonpickle.unpickler.decode [function] [call site] 00005
2 <builtin>.isinstance [function] [call site] 00006
2 on_missing.lower [function] [call site] 00007
2 jsonpickle.util._is_function [function] [call site] 00008
3 <builtin>.type [function] [call site] 00009
2 warnings.warn [function] [call site] 00010
2 jsonpickle.unpickler.Unpickler.__init__ [function] [call site] 00011
3 jsonpickle.unpickler.Unpickler.reset [function] [call site] 00012
2 backend.decode [function] [call site] 00013
2 jsonpickle.unpickler.Unpickler.restore [function] [call site] 00014
3 jsonpickle.unpickler.Unpickler.reset [function] [call site] 00015
3 jsonpickle.unpickler.Unpickler.register_classes [function] [call site] 00016
4 <builtin>.isinstance [function] [call site] 00017
4 jsonpickle.unpickler.Unpickler.register_classes [function] [call site] 00018
4 <builtin>.isinstance [function] [call site] 00019
4 <builtin>.isinstance [function] [call site] 00020
4 jsonpickle.util.importable_name [function] [call site] 00021
5 <builtin>.getattr [function] [call site] 00022
5 jsonpickle.util.translate_module_name [function] [call site] 00023
6 <builtin>.dict [function] [call site] 00024
6 lookup.get [function] [call site] 00025
5 <builtin>.hasattr [function] [call site] 00026
5 <builtin>.hasattr [function] [call site] 00027
4 classes.items [function] [call site] 00028
4 jsonpickle.util.importable_name [function] [call site] 00029
3 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00030
4 <builtin>.isinstance [function] [call site] 00031
4 jsonpickle.unpickler.Unpickler._restore_tags [function] [call site] 00032
5 <builtin>.set [function] [call site] 00033
5 <builtin>.type [function] [call site] 00034
5 <builtin>.type [function] [call site] 00035
5 <builtin>.type [function] [call site] 00036
4 jsonpickle.unpickler.Unpickler._restore_module [function] [call site] 00037
5 jsonpickle.unpickler._loadmodule [function] [call site] 00038
6 module_str.split [function] [call site] 00039
6 <builtin>.__import__ [function] [call site] 00040
6 identifier.split [function] [call site] 00041
6 module.startswith [function] [call site] 00042
6 <builtin>.getattr [function] [call site] 00043
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00044
6 <builtin>.id [function] [call site] 00045
6 <builtin>.len [function] [call site] 00046
6 jsonpickle.unpickler.Unpickler._refname [function] [call site] 00047
4 jsonpickle.unpickler.Unpickler._restore_list [function] [call site] 00048
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00049
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00050
5 parent.extend [function] [call site] 00051
5 <builtin>.enumerate [function] [call site] 00052
5 <builtin>.isinstance [function] [call site] 00053
4 jsonpickle.unpickler.Unpickler._restore_id [function] [call site] 00054
5 jsonpickle.unpickler._IDProxy.__init__ [function] [call site] 00055
4 jsonpickle.unpickler.Unpickler._restore_set [function] [call site] 00056
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00057
5 <builtin>.set [function] [call site] 00058
4 jsonpickle.unpickler.Unpickler._restore_object [function] [call site] 00059
5 jsonpickle.unpickler.loadclass [function] [call site] 00060
6 module_and_name.rsplit [function] [call site] 00061
6 module_and_name.split [function] [call site] 00062
6 <builtin>.len [function] [call site] 00063
6 <builtin>.range [function] [call site] 00064
6 jsonpickle.util.untranslate_module_name [function] [call site] 00065
7 jsonpickle.util._0_9_6_compat_untranslate [function] [call site] 00066
8 <builtin>.dict [function] [call site] 00067
8 lookup.get [function] [call site] 00068
6 <builtin>.__import__ [function] [call site] 00069
6 <builtin>.getattr [function] [call site] 00070
6 <builtin>.type [function] [call site] 00071
5 jsonpickle.unpickler._Proxy.__init__ [function] [call site] 00072
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00073
5 jsonpickle.unpickler._Proxy.reset [function] [call site] 00074
5 jsonpickle.unpickler.Unpickler._swapref [function] [call site] 00075
6 <builtin>.id [function] [call site] 00076
6 <builtin>.id [function] [call site] 00077
6 jsonpickle.unpickler.Unpickler._refname [function] [call site] 00078
5 jsonpickle.unpickler.Unpickler._process_missing [function] [call site] 00079
6 warnings.warn [function] [call site] 00080
6 jsonpickle.util._is_function [function] [call site] 00081
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00082
5 jsonpickle.unpickler.Unpickler._restore_object_instance [function] [call site] 00083
6 jsonpickle.unpickler._Proxy.__init__ [function] [call site] 00084
6 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00085
6 jsonpickle.unpickler.Unpickler._loadfactory [function] [call site] 00086
7 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00087
6 jsonpickle.unpickler.has_tag [function] [call site] 00088
7 <builtin>.type [function] [call site] 00089
6 jsonpickle.unpickler.getargs [function] [call site] 00090
7 jsonpickle.unpickler.has_tag [function] [call site] 00091
7 jsonpickle.unpickler.has_tag [function] [call site] 00092
7 jsonpickle.unpickler.has_tag [function] [call site] 00093
7 jsonpickle.unpickler.loadclass [function] [call site] 00094
7 <builtin>.hasattr [function] [call site] 00095
7 <builtin>.len [function] [call site] 00096
7 <builtin>.len [function] [call site] 00097
6 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00098
6 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00099
6 <builtin>.isinstance [function] [call site] 00100
6 <builtin>.getattr [function] [call site] 00101
6 <builtin>.hasattr [function] [call site] 00102
6 cls.__new__ [function] [call site] 00103
6 cls.__new__ [function] [call site] 00104
6 object.__new__ [function] [call site] 00105
6 jsonpickle.unpickler.make_blank_classic [function] [call site] 00106
6 jsonpickle.unpickler.Unpickler._process_missing [function] [call site] 00107
6 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00108
6 jsonpickle.unpickler._Proxy.reset [function] [call site] 00109
6 jsonpickle.unpickler.Unpickler._swapref [function] [call site] 00110
6 <builtin>.isinstance [function] [call site] 00111
6 jsonpickle.unpickler.Unpickler._restore_object_instance_variables [function] [call site] 00112
7 jsonpickle.unpickler.Unpickler._restore_from_dict [function] [call site] 00113
8 jsonpickle.unpickler.Unpickler._restore_key_fn [function] [call site] 00114
8 jsonpickle.util.items [function] [call site] 00115
9 obj.items [function] [call site] 00116
8 <builtin>.isinstance [function] [call site] 00117
8 k.__str__ [function] [call site] 00118
8 jsonpickle.unpickler.Unpickler._restore_pickled_key [function] [call site] 00119
9 jsonpickle.unpickler._is_json_key [function] [call site] 00120
10 <builtin>.isinstance [function] [call site] 00121
10 key.startswith [function] [call site] 00122
9 jsonpickle.unpickler.decode [function] [call site] 00123
9 <builtin>.len [function] [call site] 00124
8 jsonpickle.unpickler._passthrough [function] [call site] 00125
8 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00126
8 jsonpickle.util._is_noncomplex [function] [call site] 00127
9 <builtin>.type [function] [call site] 00128
8 jsonpickle.util._is_dictionary_subclass [function] [call site] 00129
9 <builtin>.hasattr [function] [call site] 00130
9 <builtin>.issubclass [function] [call site] 00131
9 <builtin>.type [function] [call site] 00132
8 <builtin>.setattr [function] [call site] 00133
8 k.startswith [function] [call site] 00134
8 <builtin>.setattr [function] [call site] 00135
8 <builtin>.setattr [function] [call site] 00136
8 object.__setattr__ [function] [call site] 00137
8 <builtin>.hasattr [function] [call site] 00138
8 <builtin>.len [function] [call site] 00139
8 <builtin>.issubclass [function] [call site] 00140
8 <builtin>.setattr [function] [call site] 00141
8 <builtin>.isinstance [function] [call site] 00142
7 jsonpickle.unpickler.has_tag [function] [call site] 00143
7 <builtin>.hasattr [function] [call site] 00144
7 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00145
7 instance.append [function] [call site] 00146
7 <builtin>.hasattr [function] [call site] 00147
7 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00148
7 instance.add [function] [call site] 00149
7 jsonpickle.unpickler.has_tag [function] [call site] 00150
7 jsonpickle.unpickler.Unpickler._restore_state [function] [call site] 00151
8 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00152
8 <builtin>.isinstance [function] [call site] 00153
8 <builtin>.len [function] [call site] 00154
8 <builtin>.isinstance [function] [call site] 00155
8 <builtin>.isinstance [function] [call site] 00156
8 <builtin>.hasattr [function] [call site] 00157
8 instance.__setstate__ [function] [call site] 00158
8 <builtin>.isinstance [function] [call site] 00159
8 jsonpickle.unpickler.Unpickler._restore_from_dict [function] [call site] 00160
8 jsonpickle.unpickler.Unpickler._restore_from_dict [function] [call site] 00161
8 jsonpickle.unpickler.Unpickler._restore_from_dict [function] [call site] 00162
8 <builtin>.hasattr [function] [call site] 00163
8 <builtin>.hasattr [function] [call site] 00164
6 jsonpickle.unpickler._safe_hasattr [function] [call site] 00165
7 object.__getattribute__ [function] [call site] 00166
6 <builtin>.isinstance [function] [call site] 00167
6 instance.default_factory.get [function] [call site] 00168
4 jsonpickle.unpickler.Unpickler._restore_repr_safe [function] [call site] 00169
5 jsonpickle.unpickler._loadmodule [function] [call site] 00170
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00171
4 jsonpickle.unpickler.Unpickler._restore_iterator [function] [call site] 00172
5 jsonpickle.unpickler.Unpickler._restore_list [function] [call site] 00173
5 <builtin>.iter [function] [call site] 00174
5 <builtin>.iter [function] [call site] 00175
4 jsonpickle.unpickler.Unpickler._restore_base64 [function] [call site] 00176
5 jsonpickle.util.b64decode [function] [call site] 00177
6 base64.b64decode [function] [call site] 00178
4 jsonpickle.unpickler.Unpickler._restore_function [function] [call site] 00179
5 jsonpickle.unpickler.loadclass [function] [call site] 00180
4 jsonpickle.unpickler._passthrough [function] [call site] 00181
4 jsonpickle.unpickler.Unpickler._restore_base85 [function] [call site] 00182
5 jsonpickle.util.b85decode [function] [call site] 00183
6 base64.b85decode [function] [call site] 00184
4 jsonpickle.unpickler.Unpickler._restore_type [function] [call site] 00185
5 jsonpickle.unpickler.loadclass [function] [call site] 00186
4 jsonpickle.unpickler.Unpickler._restore_dict [function] [call site] 00187
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00188
5 jsonpickle.util.items [function] [call site] 00189
5 jsonpickle.unpickler._is_json_key [function] [call site] 00190
5 <builtin>.isinstance [function] [call site] 00191
5 k.__str__ [function] [call site] 00192
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00193
5 jsonpickle.util.items [function] [call site] 00194
5 jsonpickle.unpickler._is_json_key [function] [call site] 00195
5 jsonpickle.unpickler.Unpickler._restore_pickled_key [function] [call site] 00196
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00197
5 <builtin>.isinstance [function] [call site] 00198
5 jsonpickle.util.items [function] [call site] 00199
5 <builtin>.isinstance [function] [call site] 00200
5 k.__str__ [function] [call site] 00201
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00202
5 <builtin>.isinstance [function] [call site] 00203
4 jsonpickle.unpickler.Unpickler._restore_reduce [function] [call site] 00204
5 jsonpickle.unpickler._Proxy.__init__ [function] [call site] 00205
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00206
5 <builtin>.map [function] [call site] 00207
5 <builtin>.list [function] [call site] 00208
5 jsonpickle.unpickler._Proxy.reset [function] [call site] 00209
5 jsonpickle.unpickler.Unpickler._swapref [function] [call site] 00210
5 <builtin>.len [function] [call site] 00211
5 <builtin>.len [function] [call site] 00212
5 reduce_val.extend [function] [call site] 00213
5 <builtin>.getattr [function] [call site] 00214
5 <builtin>.isinstance [function] [call site] 00215
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00216
5 cls.__new__ [function] [call site] 00217
5 <builtin>.callable [function] [call site] 00218
5 jsonpickle.unpickler._Proxy.reset [function] [call site] 00219
5 jsonpickle.unpickler.Unpickler._swapref [function] [call site] 00220
5 f.__new__ [function] [call site] 00221
5 stage1.__setstate__ [function] [call site] 00222
5 stage1.__dict__.items [function] [call site] 00223
5 state.setdefault [function] [call site] 00224
5 state.items [function] [call site] 00225
5 <builtin>.setattr [function] [call site] 00226
5 stage1.__dict__.update [function] [call site] 00227
5 slots_state.items [function] [call site] 00228
5 <builtin>.setattr [function] [call site] 00229
5 stage1.extend [function] [call site] 00230
5 stage1.append [function] [call site] 00231
5 stage1.__setitem__ [function] [call site] 00232
5 jsonpickle.unpickler._Proxy.reset [function] [call site] 00233
5 jsonpickle.unpickler.Unpickler._swapref [function] [call site] 00234
4 jsonpickle.unpickler.Unpickler._restore_repr [function] [call site] 00235
5 jsonpickle.unpickler.loadrepr [function] [call site] 00236
6 reprstr.split [function] [call site] 00237
6 <builtin>.locals [function] [call site] 00238
6 module.split [function] [call site] 00239
6 <builtin>.__import__ [function] [call site] 00240
6 <builtin>.eval [function] [call site] 00241
5 jsonpickle.unpickler.Unpickler._mkref [function] [call site] 00242
4 jsonpickle.unpickler.Unpickler._restore_tuple [function] [call site] 00243
5 jsonpickle.unpickler.Unpickler._restore [function] [call site] 00244
5 <builtin>.tuple [function] [call site] 00245
3 jsonpickle.unpickler.Unpickler._swap_proxies [function] [call site] 00246
1 utils.is_expected_error [function] [call site] 00247