169570cc8Sopenharmony_ci/*
269570cc8Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
369570cc8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
469570cc8Sopenharmony_ci * you may not use this file except in compliance with the License.
569570cc8Sopenharmony_ci * You may obtain a copy of the License at
669570cc8Sopenharmony_ci *
769570cc8Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
869570cc8Sopenharmony_ci *
969570cc8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1069570cc8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1169570cc8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1269570cc8Sopenharmony_ci * See the License for the specific language governing permissions and
1369570cc8Sopenharmony_ci * limitations under the License.
1469570cc8Sopenharmony_ci */
1569570cc8Sopenharmony_ci
1669570cc8Sopenharmony_ci#include "appspawnclient_fuzzer.h"
1769570cc8Sopenharmony_ci#include <string>
1869570cc8Sopenharmony_ci#include "appspawn.h"
1969570cc8Sopenharmony_ci
2069570cc8Sopenharmony_cinamespace OHOS {
2169570cc8Sopenharmony_ci    int FuzzAppSpawnClientInit(const uint8_t *data, size_t size)
2269570cc8Sopenharmony_ci    {
2369570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
2469570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
2569570cc8Sopenharmony_ci        return AppSpawnClientInit(name, &handle);
2669570cc8Sopenharmony_ci    }
2769570cc8Sopenharmony_ci
2869570cc8Sopenharmony_ci    int FuzzAppSpawnClientDestroy(const uint8_t *data, size_t size)
2969570cc8Sopenharmony_ci    {
3069570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
3169570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
3269570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
3369570cc8Sopenharmony_ci            return -1;
3469570cc8Sopenharmony_ci        }
3569570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
3669570cc8Sopenharmony_ci    }
3769570cc8Sopenharmony_ci
3869570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgCreate(const uint8_t *data, size_t size)
3969570cc8Sopenharmony_ci    {
4069570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
4169570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
4269570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
4369570cc8Sopenharmony_ci            return -1;
4469570cc8Sopenharmony_ci        }
4569570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
4669570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
4769570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
4869570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
4969570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
5069570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
5169570cc8Sopenharmony_ci    }
5269570cc8Sopenharmony_ci
5369570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgAddStringInfo(const uint8_t *data, size_t size)
5469570cc8Sopenharmony_ci    {
5569570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
5669570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
5769570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
5869570cc8Sopenharmony_ci            return -1;
5969570cc8Sopenharmony_ci        }
6069570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
6169570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
6269570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
6369570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
6469570cc8Sopenharmony_ci        (void)AppSpawnReqMsgAddStringInfo(reqHandle, processName.c_str(), processName.c_str());
6569570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
6669570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
6769570cc8Sopenharmony_ci    }
6869570cc8Sopenharmony_ci
6969570cc8Sopenharmony_ci    int FuzzAppSpawnTerminateMsgCreate(const uint8_t *data, size_t size)
7069570cc8Sopenharmony_ci    {
7169570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
7269570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
7369570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
7469570cc8Sopenharmony_ci            return -1;
7569570cc8Sopenharmony_ci        }
7669570cc8Sopenharmony_ci        pid_t pid = static_cast<pid_t>(size);
7769570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
7869570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
7969570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
8069570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
8169570cc8Sopenharmony_ci        (void)AppSpawnTerminateMsgCreate(pid, &reqHandle);
8269570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
8369570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
8469570cc8Sopenharmony_ci    }
8569570cc8Sopenharmony_ci
8669570cc8Sopenharmony_ci    int FuzzAppSpawnClientSendMsg(const uint8_t *data, size_t size)
8769570cc8Sopenharmony_ci    {
8869570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
8969570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
9069570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
9169570cc8Sopenharmony_ci            return -1;
9269570cc8Sopenharmony_ci        }
9369570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
9469570cc8Sopenharmony_ci        AppSpawnResult appResult = {static_cast<int>(size), 0};
9569570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
9669570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
9769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
9869570cc8Sopenharmony_ci        (void)AppSpawnClientSendMsg(handle, reqHandle, &appResult);
9969570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
10069570cc8Sopenharmony_ci    }
10169570cc8Sopenharmony_ci
10269570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgFree(const uint8_t *data, size_t size)
10369570cc8Sopenharmony_ci    {
10469570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
10569570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
10669570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
10769570cc8Sopenharmony_ci            return -1;
10869570cc8Sopenharmony_ci        }
10969570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
11069570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
11169570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
11269570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
11369570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
11469570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
11569570cc8Sopenharmony_ci    }
11669570cc8Sopenharmony_ci
11769570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetBundleInfo(const uint8_t *data, size_t size)
11869570cc8Sopenharmony_ci    {
11969570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
12069570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
12169570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
12269570cc8Sopenharmony_ci            return -1;
12369570cc8Sopenharmony_ci        }
12469570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
12569570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
12669570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
12769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
12869570cc8Sopenharmony_ci        uint32_t bundleIndex = static_cast<uint32_t>(size);
12969570cc8Sopenharmony_ci        std::string bundleName(reinterpret_cast<const char*>(data), size);
13069570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetBundleInfo(reqHandle, bundleIndex, bundleName.c_str());
13169570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
13269570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
13369570cc8Sopenharmony_ci    }
13469570cc8Sopenharmony_ci
13569570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppFlag(const uint8_t *data, size_t size)
13669570cc8Sopenharmony_ci    {
13769570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
13869570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
13969570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
14069570cc8Sopenharmony_ci            return -1;
14169570cc8Sopenharmony_ci        }
14269570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
14369570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
14469570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
14569570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
14669570cc8Sopenharmony_ci        AppFlagsIndex flagIndex = static_cast<AppFlagsIndex>(size);
14769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppFlag(reqHandle, flagIndex);
14869570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
14969570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
15069570cc8Sopenharmony_ci    }
15169570cc8Sopenharmony_ci
15269570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppDacInfo(const uint8_t *data, size_t size)
15369570cc8Sopenharmony_ci    {
15469570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
15569570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
15669570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
15769570cc8Sopenharmony_ci            return -1;
15869570cc8Sopenharmony_ci        }
15969570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
16069570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
16169570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
16269570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
16369570cc8Sopenharmony_ci        AppDacInfo dacInfo = {};
16469570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppDacInfo(reqHandle, &dacInfo);
16569570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
16669570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
16769570cc8Sopenharmony_ci    }
16869570cc8Sopenharmony_ci
16969570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppDomainInfo(const uint8_t *data, size_t size)
17069570cc8Sopenharmony_ci    {
17169570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
17269570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
17369570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
17469570cc8Sopenharmony_ci            return -1;
17569570cc8Sopenharmony_ci        }
17669570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
17769570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
17869570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
17969570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
18069570cc8Sopenharmony_ci        std::string apl(reinterpret_cast<const char*>(data), size);
18169570cc8Sopenharmony_ci        uint32_t hapFlags = static_cast<uint32_t>(size);
18269570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppDomainInfo(reqHandle, hapFlags, apl.c_str());
18369570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
18469570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
18569570cc8Sopenharmony_ci    }
18669570cc8Sopenharmony_ci
18769570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppInternetPermissionInfo(const uint8_t *data, size_t size)
18869570cc8Sopenharmony_ci    {
18969570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
19069570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
19169570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
19269570cc8Sopenharmony_ci            return -1;
19369570cc8Sopenharmony_ci        }
19469570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
19569570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
19669570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
19769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
19869570cc8Sopenharmony_ci        uint8_t allow = static_cast<uint8_t>(size);
19969570cc8Sopenharmony_ci        uint8_t setAllow = static_cast<uint8_t>(size);
20069570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppInternetPermissionInfo(reqHandle, allow, setAllow);
20169570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
20269570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
20369570cc8Sopenharmony_ci    }
20469570cc8Sopenharmony_ci
20569570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppAccessToken(const uint8_t *data, size_t size)
20669570cc8Sopenharmony_ci    {
20769570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
20869570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
20969570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
21069570cc8Sopenharmony_ci            return -1;
21169570cc8Sopenharmony_ci        }
21269570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
21369570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
21469570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
21569570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
21669570cc8Sopenharmony_ci        uint64_t accessTokenIdEx = static_cast<uint64_t>(size);
21769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppAccessToken(reqHandle, accessTokenIdEx);
21869570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
21969570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
22069570cc8Sopenharmony_ci    }
22169570cc8Sopenharmony_ci
22269570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgSetAppOwnerId(const uint8_t *data, size_t size)
22369570cc8Sopenharmony_ci    {
22469570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
22569570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
22669570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
22769570cc8Sopenharmony_ci            return -1;
22869570cc8Sopenharmony_ci        }
22969570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
23069570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
23169570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
23269570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
23369570cc8Sopenharmony_ci        std::string ownerId(reinterpret_cast<const char*>(data), size);
23469570cc8Sopenharmony_ci        (void)AppSpawnReqMsgSetAppOwnerId(reqHandle, ownerId.c_str());
23569570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
23669570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
23769570cc8Sopenharmony_ci    }
23869570cc8Sopenharmony_ci
23969570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgAddPermission(const uint8_t *data, size_t size)
24069570cc8Sopenharmony_ci    {
24169570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
24269570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
24369570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
24469570cc8Sopenharmony_ci            return -1;
24569570cc8Sopenharmony_ci        }
24669570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
24769570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
24869570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
24969570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
25069570cc8Sopenharmony_ci        std::string permission(reinterpret_cast<const char*>(data), size);
25169570cc8Sopenharmony_ci        (void)AppSpawnReqMsgAddPermission(reqHandle, permission.c_str());
25269570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
25369570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
25469570cc8Sopenharmony_ci    }
25569570cc8Sopenharmony_ci
25669570cc8Sopenharmony_ci    int FuzzAppSpawnReqMsgAddExtInfo(const uint8_t *data, size_t size)
25769570cc8Sopenharmony_ci    {
25869570cc8Sopenharmony_ci        const char *name = APPSPAWN_SERVER_NAME;
25969570cc8Sopenharmony_ci        AppSpawnClientHandle handle = nullptr;
26069570cc8Sopenharmony_ci        if (AppSpawnClientInit(name, &handle) != 0) {
26169570cc8Sopenharmony_ci            return -1;
26269570cc8Sopenharmony_ci        }
26369570cc8Sopenharmony_ci        AppSpawnReqMsgHandle reqHandle = nullptr;
26469570cc8Sopenharmony_ci        AppSpawnMsgType msgType = static_cast<AppSpawnMsgType>(size);
26569570cc8Sopenharmony_ci        std::string processName(reinterpret_cast<const char*>(data), size);
26669570cc8Sopenharmony_ci        (void)AppSpawnReqMsgCreate(msgType, processName.c_str(), &reqHandle);
26769570cc8Sopenharmony_ci        (void)AppSpawnReqMsgAddExtInfo(reqHandle, processName.c_str(), data, static_cast<uint32_t>(size));
26869570cc8Sopenharmony_ci        AppSpawnReqMsgFree(reqHandle);
26969570cc8Sopenharmony_ci        return AppSpawnClientDestroy(handle);
27069570cc8Sopenharmony_ci    }
27169570cc8Sopenharmony_ci
27269570cc8Sopenharmony_ci    int FuzzGetPermissionIndex(const uint8_t *data, size_t size)
27369570cc8Sopenharmony_ci    {
27469570cc8Sopenharmony_ci        std::string permission(reinterpret_cast<const char*>(data), size);
27569570cc8Sopenharmony_ci        return GetPermissionIndex(nullptr, permission.c_str());
27669570cc8Sopenharmony_ci    }
27769570cc8Sopenharmony_ci
27869570cc8Sopenharmony_ci    int FuzzGetMaxPermissionIndex(const uint8_t *data, size_t size)
27969570cc8Sopenharmony_ci    {
28069570cc8Sopenharmony_ci        return GetMaxPermissionIndex(nullptr);
28169570cc8Sopenharmony_ci    }
28269570cc8Sopenharmony_ci
28369570cc8Sopenharmony_ci    int FuzzGetPermissionByIndex(const uint8_t *data, size_t size)
28469570cc8Sopenharmony_ci    {
28569570cc8Sopenharmony_ci        int32_t index = static_cast<int32_t>(size);
28669570cc8Sopenharmony_ci        if (GetPermissionByIndex(nullptr, index) == nullptr) {
28769570cc8Sopenharmony_ci            return -1;
28869570cc8Sopenharmony_ci        }
28969570cc8Sopenharmony_ci        return 0;
29069570cc8Sopenharmony_ci    }
29169570cc8Sopenharmony_ci}
29269570cc8Sopenharmony_ci
29369570cc8Sopenharmony_ci/* Fuzzer entry point */
29469570cc8Sopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
29569570cc8Sopenharmony_ci{
29669570cc8Sopenharmony_ci    /* Run your code on data */
29769570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnClientInit(data, size);
29869570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnClientDestroy(data, size);
29969570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgCreate(data, size);
30069570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnTerminateMsgCreate(data, size);
30169570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgFree(data, size);
30269570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnClientSendMsg(data, size);
30369570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetBundleInfo(data, size);
30469570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppFlag(data, size);
30569570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppDacInfo(data, size);
30669570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppDomainInfo(data, size);
30769570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppInternetPermissionInfo(data, size);
30869570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppAccessToken(data, size);
30969570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgSetAppOwnerId(data, size);
31069570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgAddPermission(data, size);
31169570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgAddExtInfo(data, size);
31269570cc8Sopenharmony_ci    OHOS::FuzzAppSpawnReqMsgAddStringInfo(data, size);
31369570cc8Sopenharmony_ci    OHOS::FuzzGetPermissionIndex(data, size);
31469570cc8Sopenharmony_ci    OHOS::FuzzGetMaxPermissionIndex(data, size);
31569570cc8Sopenharmony_ci    OHOS::FuzzGetPermissionByIndex(data, size);
31669570cc8Sopenharmony_ci    return 0;
31769570cc8Sopenharmony_ci}
318