1*d9bbad27SSiva Chandra Reddy //===-- atof_fuzz.cpp -----------------------------------------------------===// 2*d9bbad27SSiva Chandra Reddy // 3*d9bbad27SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*d9bbad27SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5*d9bbad27SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*d9bbad27SSiva Chandra Reddy // 7*d9bbad27SSiva Chandra Reddy //===----------------------------------------------------------------------===// 8*d9bbad27SSiva Chandra Reddy /// 9*d9bbad27SSiva Chandra Reddy /// Fuzzing test for llvm-libc atof implementation. 10*d9bbad27SSiva Chandra Reddy /// 11*d9bbad27SSiva Chandra Reddy //===----------------------------------------------------------------------===// 12*d9bbad27SSiva Chandra Reddy #include "src/stdlib/atof.h" 13*d9bbad27SSiva Chandra Reddy #include <stddef.h> 14*d9bbad27SSiva Chandra Reddy #include <stdint.h> 15*d9bbad27SSiva Chandra Reddy #include <stdlib.h> 16*d9bbad27SSiva Chandra Reddy 17*d9bbad27SSiva Chandra Reddy #include "fuzzing/stdlib/StringParserOutputDiff.h" 18*d9bbad27SSiva Chandra Reddy LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)19*d9bbad27SSiva Chandra Reddyextern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { 20*d9bbad27SSiva Chandra Reddy uint8_t *container = new uint8_t[size + 1]; 21*d9bbad27SSiva Chandra Reddy if (!container) 22*d9bbad27SSiva Chandra Reddy __builtin_trap(); 23*d9bbad27SSiva Chandra Reddy size_t i; 24*d9bbad27SSiva Chandra Reddy 25*d9bbad27SSiva Chandra Reddy for (i = 0; i < size; ++i) 26*d9bbad27SSiva Chandra Reddy container[i] = data[i]; 27*d9bbad27SSiva Chandra Reddy container[size] = '\0'; // Add null terminator to container. 28*d9bbad27SSiva Chandra Reddy 29*d9bbad27SSiva Chandra Reddy StringParserOutputDiff<double>(&__llvm_libc::atof, &::atof, container, size); 30*d9bbad27SSiva Chandra Reddy delete[] container; 31*d9bbad27SSiva Chandra Reddy return 0; 32*d9bbad27SSiva Chandra Reddy } 33