/src/augeas/augeas_escape_name_fuzzer.cc
Line | Count | Source |
1 | | /* |
2 | | # Copyright 2016 Google Inc. |
3 | | # |
4 | | # Licensed under the Apache License, Version 2.0 (the "License"); |
5 | | # you may not use this file except in compliance with the License. |
6 | | # You may obtain a copy of the License at |
7 | | # |
8 | | # http://www.apache.org/licenses/LICENSE-2.0 |
9 | | # |
10 | | # Unless required by applicable law or agreed to in writing, software |
11 | | # distributed under the License is distributed on an "AS IS" BASIS, |
12 | | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | | # See the License for the specific language governing permissions and |
14 | | # limitations under the License. |
15 | | # |
16 | | ################################################################################ |
17 | | */ |
18 | | |
19 | | #include <string> |
20 | | |
21 | | #include <augeas.h> |
22 | | |
23 | 1.52k | int escape_match(const uint8_t *data, size_t size){ |
24 | 1.52k | augeas *aug = aug_init(NULL, NULL, AUG_NONE); |
25 | 1.52k | std::string data_string(reinterpret_cast<const char*>(data), size); |
26 | 1.52k | char *out = NULL; |
27 | 1.52k | aug_escape_name(aug, data_string.c_str(), &out); |
28 | 1.52k | if (out != NULL){ |
29 | 177 | aug_match(aug, out, NULL); |
30 | 177 | } |
31 | 1.34k | else{ |
32 | 1.34k | aug_match(aug, data_string.c_str(), NULL); |
33 | 1.34k | } |
34 | 1.52k | aug_close(aug); |
35 | 1.52k | free(out); |
36 | 1.52k | return 0; |
37 | 1.52k | } |
38 | | |
39 | | // Entry point for LibFuzzer. |
40 | 1.52k | extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { |
41 | 1.52k | escape_match(Data, Size); |
42 | 1.52k | return 0; |
43 | 1.52k | } |