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