1800b99b8Sopenharmony_ci/* 2800b99b8Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3800b99b8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4800b99b8Sopenharmony_ci * you may not use this file except in compliance with the License. 5800b99b8Sopenharmony_ci * You may obtain a copy of the License at 6800b99b8Sopenharmony_ci * 7800b99b8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8800b99b8Sopenharmony_ci * 9800b99b8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10800b99b8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11800b99b8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12800b99b8Sopenharmony_ci * See the License for the specific language governing permissions and 13800b99b8Sopenharmony_ci * limitations under the License. 14800b99b8Sopenharmony_ci */ 15800b99b8Sopenharmony_ci 16800b99b8Sopenharmony_ci#include "faultloggerdclient_fuzzer.h" 17800b99b8Sopenharmony_ci 18800b99b8Sopenharmony_ci#include <cstddef> 19800b99b8Sopenharmony_ci#include <iostream> 20800b99b8Sopenharmony_ci#include "faultloggerd_client.h" 21800b99b8Sopenharmony_ci#include "fault_logger_daemon.h" 22800b99b8Sopenharmony_ci#include "faultloggerd_fuzzertest_common.h" 23800b99b8Sopenharmony_ci 24800b99b8Sopenharmony_cinamespace OHOS { 25800b99b8Sopenharmony_cinamespace HiviewDFX { 26800b99b8Sopenharmony_ci 27800b99b8Sopenharmony_civoid FaultloggerdClientTest(const uint8_t* data, size_t size) 28800b99b8Sopenharmony_ci{ 29800b99b8Sopenharmony_ci int32_t type; 30800b99b8Sopenharmony_ci int32_t pid; 31800b99b8Sopenharmony_ci int32_t tid; 32800b99b8Sopenharmony_ci 33800b99b8Sopenharmony_ci int offsetTotalLength = sizeof(type) + sizeof(pid) + sizeof(tid); 34800b99b8Sopenharmony_ci if (offsetTotalLength > size) { 35800b99b8Sopenharmony_ci return; 36800b99b8Sopenharmony_ci } 37800b99b8Sopenharmony_ci 38800b99b8Sopenharmony_ci STREAM_TO_VALUEINFO(data, type); 39800b99b8Sopenharmony_ci STREAM_TO_VALUEINFO(data, pid); 40800b99b8Sopenharmony_ci STREAM_TO_VALUEINFO(data, tid); 41800b99b8Sopenharmony_ci 42800b99b8Sopenharmony_ci RequestFileDescriptor(type); 43800b99b8Sopenharmony_ci RequestPipeFd(pid, type); 44800b99b8Sopenharmony_ci RequestDelPipeFd(pid); 45800b99b8Sopenharmony_ci RequestCheckPermission(pid); 46800b99b8Sopenharmony_ci RequestSdkDump(pid, tid); 47800b99b8Sopenharmony_ci} 48800b99b8Sopenharmony_ci} // namespace HiviewDFX 49800b99b8Sopenharmony_ci} // namespace OHOS 50800b99b8Sopenharmony_ci 51800b99b8Sopenharmony_ci/* Fuzzer entry point */ 52800b99b8Sopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 53800b99b8Sopenharmony_ci{ 54800b99b8Sopenharmony_ci if (data == nullptr || size == 0) { 55800b99b8Sopenharmony_ci return 0; 56800b99b8Sopenharmony_ci } 57800b99b8Sopenharmony_ci 58800b99b8Sopenharmony_ci /* Run your code on data */ 59800b99b8Sopenharmony_ci OHOS::HiviewDFX::FaultloggerdClientTest(data, size); 60800b99b8Sopenharmony_ci return 0; 61800b99b8Sopenharmony_ci} 62