Signed-off-by: 师皓杰 <shihaojie10@huawei.com>
This commit is contained in:
师皓杰 2024-07-23 03:41:03 +00:00
parent edb082a403
commit dbe96660b3
7 changed files with 80 additions and 136 deletions

View File

@ -2947,7 +2947,7 @@ bool DistributedSchedService::CheckCallingUid()
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_);
return;
}

View File

@ -45,7 +45,7 @@ ohos_fuzztest("BundleManagerCallBackStubFuzzTest") {
sources = [
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
"bundlemanagercallbackstub_fuzzer.cpp",
]
]
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]

View File

@ -21,13 +21,12 @@ ohos_fuzztest("DistributedSchedStubFuzzTest") {
visibility = [ ":*" ]
include_dirs = [
"${dms_path}/test/fuzztest/distributedschedstub_fuzzer",
"${dms_path}/services/dtbschedmgr/include/",
"${dms_path}/services/dtbschedmgr/include/dfx/",
"${dms_path}/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}/common/include/",
"${dms_path}/services/dtbschedmgr/include/dfx/",
"${dms_path}/test/fuzztest/distributedschedstub_fuzzer",
"${dms_path}/test/fuzztest/util",
]
@ -47,7 +46,6 @@ ohos_fuzztest("DistributedSchedStubFuzzTest") {
"${dms_path}/services/dtbschedmgr/test/unittest/mock_distributed_sched.cpp",
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
"distributedschedstub_fuzzer.cpp",
"fuzz_util.cpp",
]
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]

View File

@ -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();
}
}
}

View File

@ -45,7 +45,7 @@ ohos_fuzztest("DmsFreeInstallCallBackStubFuzzTest") {
sources = [
"${dms_path}/test/fuzztest/util/mock_fuzz_util.cpp",
"dmsfreeinstallcallbackstub_fuzzer.cpp",
]
]
deps = [ "${dms_path}/services/dtbschedmgr:distributedschedsvr" ]

View File

@ -1,73 +1,73 @@
/*
* 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 "mock_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.ABILITY_BACKGROUND_COMMUNICATION",
"ohos.permission.ACCESS_SERVICE_DM",
"ohos.permission.ACCESS_SERVICE_DP",
"ohos.permission.DISTRIBUTED_DATASYNC",
"ohos.permission.INPUT_MONITORING",
"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"ohos.permission.GET_WIFI_INFO",
"ohos.permission.MANAGE_MISSIONS",
"ohos.permission.MANAGE_WIFI_CONNECTION",
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
"ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT",
"ohos.permission.REPORT_RESOURCE_SCHEDULE_EVENT",
"ohos.permission.RUNNING_STATE_OBSERVER",
"ohos.permission.START_INVISIBLE_ABILITY",
"ohos.permission.INPUT_MONITORING",
"ohos.permission.MANAGE_MISSIONS",
"ohos.permission.MANAGE_WIFI_CONNECTION",
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
"ohos.permission.START_INVISIBLE_ABILITY"
};
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();
setuid(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 "mock_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.ABILITY_BACKGROUND_COMMUNICATION",
"ohos.permission.ACCESS_SERVICE_DM",
"ohos.permission.ACCESS_SERVICE_DP",
"ohos.permission.DISTRIBUTED_DATASYNC",
"ohos.permission.INPUT_MONITORING",
"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"ohos.permission.GET_WIFI_INFO",
"ohos.permission.MANAGE_MISSIONS",
"ohos.permission.MANAGE_WIFI_CONNECTION",
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
"ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT",
"ohos.permission.REPORT_RESOURCE_SCHEDULE_EVENT",
"ohos.permission.RUNNING_STATE_OBSERVER",
"ohos.permission.START_INVISIBLE_ABILITY",
"ohos.permission.INPUT_MONITORING",
"ohos.permission.MANAGE_MISSIONS",
"ohos.permission.MANAGE_WIFI_CONNECTION",
"ohos.permission.MONITOR_DEVICE_NETWORK_STATE",
"ohos.permission.START_INVISIBLE_ABILITY"
};
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();
setuid(0);
}
}
}

View File

@ -28,4 +28,4 @@ public:
};
}
} // namespace OHOS
#endif // SAMGR_SERVICES_SAMGR_MOCK_PERMISSION_H
#endif