Lines Matching full:extras

2    american fuzzy lop++ - extras relates routines
53 /* Read extras from a file, sort by size. */
176 afl->extras = in load_extras_file()
177 afl_realloc((void **)&afl->extras, in load_extras_file()
181 if (unlikely(!afl->extras)) { PFATAL("alloc"); } in load_extras_file()
183 wptr = afl->extras[afl->extras_cnt].data = ck_alloc(rptr - lptr); in load_extras_file()
233 afl->extras[afl->extras_cnt].len = klen; in load_extras_file()
235 if (afl->extras[afl->extras_cnt].len > MAX_DICT_FILE) { in load_extras_file()
268 qsort(afl->extras, afl->extras_cnt, sizeof(struct extra_data), in extras_check_and_sort()
291 /* Read extras from the extras directory and sort them by size. */
364 afl->extras = in load_extras()
365 afl_realloc((void **)&afl->extras, in load_extras()
367 if (unlikely(!afl->extras)) { PFATAL("alloc"); } in load_extras()
369 afl->extras[afl->extras_cnt].data = ck_alloc(st.st_size); in load_extras()
370 afl->extras[afl->extras_cnt].len = st.st_size; in load_extras()
376 ck_read(fd, afl->extras[afl->extras_cnt].data, st.st_size, fn); in load_extras()
409 afl->extras = afl_realloc((void **)&afl->extras, in add_extra_nocheck()
412 if (unlikely(!afl->extras)) { PFATAL("alloc"); } in add_extra_nocheck()
414 afl->extras[afl->extras_cnt].data = ck_alloc(len); in add_extra_nocheck()
415 afl->extras[afl->extras_cnt].len = len; in add_extra_nocheck()
416 memcpy(afl->extras[afl->extras_cnt].data, mem, len); in add_extra_nocheck()
442 if (afl->extras[i].len < 6 || afl->extras[i].len > 64 || in deunicode_extras()
443 afl->extras[i].len % 2) { in deunicode_extras()
449 u32 k = 0, z1 = 0, z2 = 0, z3 = 0, z4 = 0, half = afl->extras[i].len >> 1; in deunicode_extras()
452 for (j = 0; j < afl->extras[i].len; ++j) { in deunicode_extras()
457 if (!afl->extras[i].data[j]) { ++z3; } in deunicode_extras()
460 if (!afl->extras[i].data[j]) { ++z1; } in deunicode_extras()
463 if (!afl->extras[i].data[j]) { ++z4; } in deunicode_extras()
466 if (!afl->extras[i].data[j]) { ++z2; } in deunicode_extras()
473 if ((z1 < half && z2 < half) || z1 + z2 == afl->extras[i].len) { continue; } in deunicode_extras()
476 if (afl->extras[i].len % 4 == 0 && afl->extras[i].len >= 12 && in deunicode_extras()
479 for (j = 0; j < afl->extras[i].len; ++j) { in deunicode_extras()
483 if (j % 4 == 3) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
487 if (j % 4 == 2) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
491 if (j % 4 == 1) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
495 if (j % 4 == 0) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
506 for (j = 0; j < afl->extras[i].len; ++j) { in deunicode_extras()
510 if (j % 2 == 0) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
514 if (j % 2 == 1) { buf[k++] = afl->extras[i].data[j]; } in deunicode_extras()
524 qsort(afl->extras, afl->extras_cnt, sizeof(struct extra_data), in deunicode_extras()
529 /* Removes duplicates from the loaded extras. This can happen if multiple files
545 if (j >= afl->extras_cnt || afl->extras[i].len != afl->extras[j].len) in dedup_extras()
548 if (memcmp(afl->extras[i].data, afl->extras[j].data, in dedup_extras()
549 afl->extras[i].len) == 0) { in dedup_extras()
551 ck_free(afl->extras[j].data); in dedup_extras()
553 memmove((char *)&afl->extras[j], (char *)&afl->extras[j + 1], in dedup_extras()
565 afl->extras = afl_realloc_exact( in dedup_extras()
566 (void **)&afl->extras, afl->extras_cnt * sizeof(struct extra_data)); in dedup_extras()
577 if (afl->extras[i].len == len) { in add_extra()
579 if (memcmp(afl->extras[i].data, mem, len) == 0) return; in add_extra()
606 qsort(afl->extras, afl->extras_cnt, sizeof(struct extra_data), in add_extra()
667 /* Reject anything that matches existing extras. Do a case-insensitive in maybe_add_auto()
668 match. We optimize by exploiting the fact that extras[] are sorted in maybe_add_auto()
673 if (afl->extras[i].len >= len) { break; } in maybe_add_auto()
677 for (; i < afl->extras_cnt && afl->extras[i].len == len; ++i) { in maybe_add_auto()
679 if (!memcmp_nocase(afl->extras[i].data, mem, len)) { return; } in maybe_add_auto()
722 /* First, sort all auto extras by use count, descending order. */ in maybe_add_auto()
734 /* Save automatically generated extras. */
762 /* Load automatically generated extras. */
814 /* Destroy extras. */
822 ck_free(afl->extras[i].data); in destroy_extras()
826 afl_free(afl->extras); in destroy_extras()