mirror of
https://gitee.com/openharmony/ability_dmsfwk
synced 2024-12-04 04:13:09 +00:00
add fuzz
Signed-off-by: 师皓杰 <shihaojie10@huawei.com>
This commit is contained in:
parent
edb082a403
commit
dbe96660b3
@ -2947,7 +2947,7 @@ bool DistributedSchedService::CheckCallingUid()
|
|||||||
|
|
||||||
void DistributedSchedService::GetContinueEventInfo(int32_t callingUid, std::vector<EventNotify> &events)
|
void DistributedSchedService::GetContinueEventInfo(int32_t callingUid, std::vector<EventNotify> &events)
|
||||||
{
|
{
|
||||||
if (callingUid == DEFAULT_REQUEST_CODE) {
|
if (callingUid == DEFAULT_REQUEST_CODE && dschedContinuation_ != nullptr) {
|
||||||
events.emplace_back(dschedContinuation_->continueEvent_);
|
events.emplace_back(dschedContinuation_->continueEvent_);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ ohos_fuzztest("BundleManagerCallBackStubFuzzTest") {
|
|||||||
sources = [
|
sources = [
|
||||||
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
||||||
"bundlemanagercallbackstub_fuzzer.cpp",
|
"bundlemanagercallbackstub_fuzzer.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
||||||
|
|
||||||
|
@ -21,13 +21,12 @@ ohos_fuzztest("DistributedSchedStubFuzzTest") {
|
|||||||
|
|
||||||
visibility = [ ":*" ]
|
visibility = [ ":*" ]
|
||||||
include_dirs = [
|
include_dirs = [
|
||||||
"${dms_path}/test/fuzztest/distributedschedstub_fuzzer",
|
"${dms_path}/common/include/",
|
||||||
"${dms_path}/services/dtbschedmgr/include/",
|
|
||||||
"${dms_path}/services/dtbschedmgr/include/dfx/",
|
|
||||||
"${dms_path}/interfaces/innerkits/common/include/",
|
"${dms_path}/interfaces/innerkits/common/include/",
|
||||||
"${dms_path}/common/include/",
|
"${dms_path}/services/dtbschedmgr/include/",
|
||||||
"${dms_path}/services/dtbschedmgr/include/collaborate/",
|
"${dms_path}/services/dtbschedmgr/include/collaborate/",
|
||||||
"${dms_path}/common/include/",
|
"${dms_path}/services/dtbschedmgr/include/dfx/",
|
||||||
|
"${dms_path}/test/fuzztest/distributedschedstub_fuzzer",
|
||||||
"${dms_path}/test/fuzztest/util",
|
"${dms_path}/test/fuzztest/util",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -47,7 +46,6 @@ ohos_fuzztest("DistributedSchedStubFuzzTest") {
|
|||||||
"${dms_path}/services/dtbschedmgr/test/unittest/mock_distributed_sched.cpp",
|
"${dms_path}/services/dtbschedmgr/test/unittest/mock_distributed_sched.cpp",
|
||||||
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
||||||
"distributedschedstub_fuzzer.cpp",
|
"distributedschedstub_fuzzer.cpp",
|
||||||
"fuzz_util.cpp",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
||||||
* 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 "fuzz_util.h"
|
|
||||||
|
|
||||||
#include "accesstoken_kit.h"
|
|
||||||
#include "nativetoken_kit.h"
|
|
||||||
#include "token_setproc.h"
|
|
||||||
|
|
||||||
namespace OHOS {
|
|
||||||
namespace DistributedSchedule {
|
|
||||||
namespace {
|
|
||||||
constexpr const char* FOUNDATION_PROCESS_NAME = "foundation";
|
|
||||||
}
|
|
||||||
|
|
||||||
void FuzzUtil::MockPermission()
|
|
||||||
{
|
|
||||||
static const char *perms[] = {
|
|
||||||
"ohos.permission.DISTRIBUTED_DATASYNC"
|
|
||||||
};
|
|
||||||
MockProcessAndPermission(FOUNDATION_PROCESS_NAME, perms, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FuzzUtil::MockProcessAndPermission(const char* processName, const char *perms[], int32_t permsNum)
|
|
||||||
{
|
|
||||||
uint64_t tokenId;
|
|
||||||
NativeTokenInfoParams infoInstance = {
|
|
||||||
.dcapsNum = 0,
|
|
||||||
.permsNum = permsNum,
|
|
||||||
.aclsNum = 0,
|
|
||||||
.dcaps = nullptr,
|
|
||||||
.perms = perms,
|
|
||||||
.acls = nullptr,
|
|
||||||
.processName = processName,
|
|
||||||
.aplStr = "system_core",
|
|
||||||
};
|
|
||||||
tokenId = GetAccessTokenId(&infoInstance);
|
|
||||||
SetSelfTokenID(tokenId);
|
|
||||||
OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -45,7 +45,7 @@ ohos_fuzztest("DmsFreeInstallCallBackStubFuzzTest") {
|
|||||||
sources = [
|
sources = [
|
||||||
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
|
||||||
"dmsfreeinstallcallbackstub_fuzzer.cpp",
|
"dmsfreeinstallcallbackstub_fuzzer.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]
|
||||||
|
|
||||||
|
@ -1,73 +1,73 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "mock_fuzz_util.h"
|
#include "mock_fuzz_util.h"
|
||||||
|
|
||||||
#include "accesstoken_kit.h"
|
#include "accesstoken_kit.h"
|
||||||
#include "nativetoken_kit.h"
|
#include "nativetoken_kit.h"
|
||||||
#include "token_setproc.h"
|
#include "token_setproc.h"
|
||||||
|
|
||||||
namespace OHOS {
|
namespace OHOS {
|
||||||
namespace DistributedSchedule {
|
namespace DistributedSchedule {
|
||||||
namespace {
|
namespace {
|
||||||
constexpr const char* FOUNDATION_PROCESS_NAME = "foundation";
|
constexpr const char* FOUNDATION_PROCESS_NAME = "foundation";
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuzzUtil::MockPermission()
|
void FuzzUtil::MockPermission()
|
||||||
{
|
{
|
||||||
static const char *perms[] = {
|
static const char *perms[] = {
|
||||||
"ohos.permission.ABILITY_BACKGROUND_COMMUNICATION",
|
"ohos.permission.ABILITY_BACKGROUND_COMMUNICATION",
|
||||||
"ohos.permission.ACCESS_SERVICE_DM",
|
"ohos.permission.ACCESS_SERVICE_DM",
|
||||||
"ohos.permission.ACCESS_SERVICE_DP",
|
"ohos.permission.ACCESS_SERVICE_DP",
|
||||||
"ohos.permission.DISTRIBUTED_DATASYNC",
|
"ohos.permission.DISTRIBUTED_DATASYNC",
|
||||||
"ohos.permission.INPUT_MONITORING",
|
"ohos.permission.INPUT_MONITORING",
|
||||||
"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
|
"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
|
||||||
"ohos.permission.GET_WIFI_INFO",
|
"ohos.permission.GET_WIFI_INFO",
|
||||||
"ohos.permission.MANAGE_MISSIONS",
|
"ohos.permission.MANAGE_MISSIONS",
|
||||||
"ohos.permission.MANAGE_WIFI_CONNECTION",
|
"ohos.permission.MANAGE_WIFI_CONNECTION",
|
||||||
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
|
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
|
||||||
"ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT",
|
"ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT",
|
||||||
"ohos.permission.REPORT_RESOURCE_SCHEDULE_EVENT",
|
"ohos.permission.REPORT_RESOURCE_SCHEDULE_EVENT",
|
||||||
"ohos.permission.RUNNING_STATE_OBSERVER",
|
"ohos.permission.RUNNING_STATE_OBSERVER",
|
||||||
"ohos.permission.START_INVISIBLE_ABILITY",
|
"ohos.permission.START_INVISIBLE_ABILITY",
|
||||||
"ohos.permission.INPUT_MONITORING",
|
"ohos.permission.INPUT_MONITORING",
|
||||||
"ohos.permission.MANAGE_MISSIONS",
|
"ohos.permission.MANAGE_MISSIONS",
|
||||||
"ohos.permission.MANAGE_WIFI_CONNECTION",
|
"ohos.permission.MANAGE_WIFI_CONNECTION",
|
||||||
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
|
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
|
||||||
"ohos.permission.START_INVISIBLE_ABILITY"
|
"ohos.permission.START_INVISIBLE_ABILITY"
|
||||||
};
|
};
|
||||||
MockProcessAndPermission(FOUNDATION_PROCESS_NAME, perms, 1);
|
MockProcessAndPermission(FOUNDATION_PROCESS_NAME, perms, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuzzUtil::MockProcessAndPermission(const char* processName, const char *perms[], int32_t permsNum)
|
void FuzzUtil::MockProcessAndPermission(const char* processName, const char *perms[], int32_t permsNum)
|
||||||
{
|
{
|
||||||
uint64_t tokenId;
|
uint64_t tokenId;
|
||||||
NativeTokenInfoParams infoInstance = {
|
NativeTokenInfoParams infoInstance = {
|
||||||
.dcapsNum = 0,
|
.dcapsNum = 0,
|
||||||
.permsNum = permsNum,
|
.permsNum = permsNum,
|
||||||
.aclsNum = 0,
|
.aclsNum = 0,
|
||||||
.dcaps = nullptr,
|
.dcaps = nullptr,
|
||||||
.perms = perms,
|
.perms = perms,
|
||||||
.acls = nullptr,
|
.acls = nullptr,
|
||||||
.processName = processName,
|
.processName = processName,
|
||||||
.aplStr = "system_core",
|
.aplStr = "system_core",
|
||||||
};
|
};
|
||||||
tokenId = GetAccessTokenId(&infoInstance);
|
tokenId = GetAccessTokenId(&infoInstance);
|
||||||
SetSelfTokenID(tokenId);
|
SetSelfTokenID(tokenId);
|
||||||
OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
|
OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
|
||||||
setuid(0);
|
setuid(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -28,4 +28,4 @@ public:
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
} // namespace OHOS
|
} // namespace OHOS
|
||||||
#endif // SAMGR_SERVICES_SAMGR_MOCK_PERMISSION_H
|
#endif
|
Loading…
Reference in New Issue
Block a user