/* # Copyright 2020 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ################################################################################ */ #include "config.h" #include "augeas.h" #include "internal.h" #include "memory.h" #include "syntax.h" #include "transform.h" #include "errcode.h" #include #include #include #include #include extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if(size<3){ return 0; } char *loadpath = NULL; const char *value; const char *label; char *new_str = (char *)malloc(size+1); if (new_str == NULL){ return 0; } memcpy(new_str, data, size); new_str[size] = '\0'; struct augeas *aug = aug_init(new_str, loadpath, AUG_NO_STDINC|AUG_NO_LOAD); aug_defvar(aug, new_str, &new_str[1]); aug_get(aug, new_str, &value); aug_label(aug, new_str, &label); aug_rename(aug, new_str, &new_str[1]); aug_text_store(aug, &new_str[1], new_str, &new_str[2]); aug_print(aug, stdout, new_str); aug_setm(aug, new_str, NULL, &new_str[1]); free(new_str); aug_close(aug); return 0; }