1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "readfstabfromfile_fuzzer.h" 17 18#include <array> 19#include <cstddef> 20#include <cstdint> 21#include <iostream> 22#include <string> 23#include <vector> 24#include "fs_manager/fs_manager.h" 25#include "log/log.h" 26 27using namespace Updater; 28 29namespace OHOS { 30 void FuzzReadFstabFromFile(const uint8_t* data, size_t size) 31 { 32 FILE *pFile; 33 Fstab *fstab = NULL; 34 const std::string fstabFile = "ReadFstabFromFile.txt"; 35 36 pFile = fopen("ReadFstabFromFile.txt", "w+"); 37 if (pFile == nullptr) { 38 LOG(ERROR) << "[fuzz]open file failed"; 39 return; 40 } 41 42 (void)fwrite(data, 1, size, pFile); 43 (void)fclose(pFile); 44 fstab = ReadFstabFromFile(fstabFile.c_str(), false); 45 (void)remove("ReadFstabFromFile.txt"); 46 ReleaseFstab(fstab); 47 } 48} 49 50/* Fuzzer entry point */ 51extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 52{ 53 /* Run your code on data */ 54 OHOS::FuzzReadFstabFromFile(data, size); 55 return 0; 56} 57