1*08b48e0bSAndroid Build Coastguard Worker #include <stdlib.h> 2*08b48e0bSAndroid Build Coastguard Worker #include <unistd.h> 3*08b48e0bSAndroid Build Coastguard Worker #include <limits.h> 4*08b48e0bSAndroid Build Coastguard Worker #include <stdint.h> 5*08b48e0bSAndroid Build Coastguard Worker 6*08b48e0bSAndroid Build Coastguard Worker __AFL_FUZZ_INIT(); 7*08b48e0bSAndroid Build Coastguard Worker main(void)8*08b48e0bSAndroid Build Coastguard Workerint main(void) { 9*08b48e0bSAndroid Build Coastguard Worker 10*08b48e0bSAndroid Build Coastguard Worker ssize_t bytes_read; 11*08b48e0bSAndroid Build Coastguard Worker 12*08b48e0bSAndroid Build Coastguard Worker __AFL_INIT(); 13*08b48e0bSAndroid Build Coastguard Worker float *magic = (float *)__AFL_FUZZ_TESTCASE_BUF; 14*08b48e0bSAndroid Build Coastguard Worker 15*08b48e0bSAndroid Build Coastguard Worker while (__AFL_LOOP(INT_MAX)) { 16*08b48e0bSAndroid Build Coastguard Worker 17*08b48e0bSAndroid Build Coastguard Worker int len = __AFL_FUZZ_TESTCASE_LEN; 18*08b48e0bSAndroid Build Coastguard Worker if (len < sizeof(float)) return 1; 19*08b48e0bSAndroid Build Coastguard Worker 20*08b48e0bSAndroid Build Coastguard Worker /* 15 + 1/2 = 15.5 */ 21*08b48e0bSAndroid Build Coastguard Worker /* 15 + 1/2 + 1/8 = 15.625 */ 22*08b48e0bSAndroid Build Coastguard Worker /* 15 + 1/2 + 1/8 + 1/32 = 15.65625 */ 23*08b48e0bSAndroid Build Coastguard Worker /* 15 + 1/2 + 1/8 + 1/32 + 1/128 = 15.6640625 */ 24*08b48e0bSAndroid Build Coastguard Worker if ((*magic >= 15.0 + 0.5 + 0.125 + 0.03125) && 25*08b48e0bSAndroid Build Coastguard Worker (*magic <= 15.0 + 0.5 + 0.125 + 0.03125 + 0.0078125)) 26*08b48e0bSAndroid Build Coastguard Worker abort(); 27*08b48e0bSAndroid Build Coastguard Worker 28*08b48e0bSAndroid Build Coastguard Worker } 29*08b48e0bSAndroid Build Coastguard Worker 30*08b48e0bSAndroid Build Coastguard Worker return 0; 31*08b48e0bSAndroid Build Coastguard Worker 32*08b48e0bSAndroid Build Coastguard Worker } 33*08b48e0bSAndroid Build Coastguard Worker 34