blob: ca42f678528368fadee39524032abdcd5a886c65 [file] [log] [blame]
mmoroze87d66d52016-02-05 19:10:571// Copyright 2015 The Chromium Authors. All rights reserved.
krasin89ae30be2015-10-21 01:37:432// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
mmoroze87d66d52016-02-05 19:10:575#include <stddef.h>
krasin89ae30be2015-10-21 01:37:436#include <stdint.h>
7
8#include <string>
9#include <vector>
10
11#include "base/strings/string_number_conversions.h"
12
13// Entry point for LibFuzzer.
mmoroze87d66d52016-02-05 19:10:5714extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
krasin89ae30be2015-10-21 01:37:4315 std::string input(reinterpret_cast<const char*>(data), size);
16 int out_int;
17 base::StringToInt(input, &out_int);
18 unsigned out_uint;
19 base::StringToUint(input, &out_uint);
20 int64_t out_int64;
21 base::StringToInt64(input, &out_int64);
22 uint64_t out_uint64;
23 base::StringToUint64(input, &out_uint64);
24 size_t out_size;
25 base::StringToSizeT(input, &out_size);
26 double out_double;
27 base::StringToDouble(input, &out_double);
28 base::HexStringToInt(input, &out_int);
29 base::HexStringToUInt(input, &out_uint);
30 base::HexStringToInt64(input, &out_int64);
31 base::HexStringToUInt64(input, &out_uint64);
32
33 std::vector<uint8_t> out_bytes;
34 base::HexStringToBytes(input, &out_bytes);
35
36 base::HexEncode(data, size);
krasinf45d5292015-10-22 01:46:2237 return 0;
krasin89ae30be2015-10-21 01:37:4338}