| 12345678910111213141516171819202122232425262728293031323334 |
- #include <hb.h>
- #include <stddef.h>
- extern "C" int LLVMFuzzerTestOneInput (const uint8_t *data, size_t size);
- #if defined(__GNUC__) && (__GNUC__ >= 4) || (__clang__)
- #define HB_UNUSED __attribute__((unused))
- #else
- #define HB_UNUSED
- #endif
- #ifdef HB_IS_IN_FUZZER
- /* See src/failing-alloc.c */
- extern "C" int alloc_state;
- #else
- /* Just a dummy global variable */
- static int HB_UNUSED alloc_state = 0;
- #endif
- static inline int
- _fuzzing_alloc_state (const uint8_t *data, size_t size)
- {
- /* https://github.com/harfbuzz/harfbuzz/pull/2764#issuecomment-1172589849 */
- /* In 50% of the runs, don't fail the allocator. */
- if (size && data[size - 1] < 0x80)
- return 0;
- return size;
- }
|