1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| EXP_ST u8 *in_dir, *out_file, *out_dir, *sync_dir, *sync_id, *use_banner, *in_bitmap, *doc_path, *target_path, *orig_cmdline; EXP_ST u32 exec_tmout = EXEC_TIMEOUT; static u32 hang_tmout = EXEC_TIMEOUT;
static u32 stats_update_freq = 1; EXP_ST u8 skip_deterministic, force_deterministic, use_splicing, dumb_mode, score_changed, kill_signal, resuming_fuzz, timeout_given, cpu_to_bind_given, not_on_tty, term_too_small, uses_asan, no_forkserver, crash_mode, in_place_resume, auto_changed, no_cpu_meter_red, no_arith, shuffle_queue, bitmap_changed = 1, qemu_mode, skip_requested, run_over10m, persistent_mode, deferred_mode, fast_cal;
static s32 forksrv_pid, child_pid = -1, out_dir_fd = -1;
static s32 out_fd, dev_urandom_fd = -1, dev_null_fd = -1, fsrv_ctl_fd, fsrv_st_fd;
static s32 forksrv_pid, child_pid = -1, out_dir_fd = -1;
EXP_ST u8* trace_bits; static s32 shm_id;
EXP_ST u8 virgin_bits[MAP_SIZE], virgin_tmout[MAP_SIZE], virgin_crash[MAP_SIZE];
static u8 var_bytes[MAP_SIZE];
EXP_ST u32 queued_paths, queued_variable, queued_at_start, queued_discovered, queued_imported, queued_favored, queued_with_cov, pending_not_fuzzed, pending_favored, cur_skipped_paths, cur_depth, max_depth, useless_at_start, var_byte_count, current_entry, havoc_div = 1;
EXP_ST u64 total_crashes, unique_crashes, total_tmouts, unique_tmouts, unique_hangs, total_execs, slowest_exec_ms, start_time, last_path_time, last_crash_time, last_hang_time, last_crash_execs, queue_cycle, cycles_wo_finds, trim_execs, bytes_trim_in, bytes_trim_out, blocks_eff_total, blocks_eff_select;
static u8 *stage_name = "init", *stage_short, *syncing_party;
static s32 stage_cur, stage_max; static s32 splicing_with = -1;
struct extra_data { u8* data; u32 len; u32 hit_cnt; };
static struct extra_data* extras; static u32 extras_cnt;
static struct extra_data* a_extras; static u32 a_extras_cnt;
static s8 interesting_8[] = { INTERESTING_8 }; static s16 interesting_16[] = { INTERESTING_8, INTERESTING_16 }; static s32 interesting_32[] = { INTERESTING_8, INTERESTING_16, INTERESTING_32 };
#define INTERESTING_8 -128, -1, 0, 1, 16, 32, 64, 100, 127
#define INTERESTING_16 -32768, -129, 128, 255, 256, 512, 1000, 1024, 4096, 32767
#define INTERESTING_32 -2147483648LL, -100663046, -32769, 32768, 65535, 65536, 100663045, 2147483647
|