diff --git a/interfaces/inner_api/src/distributed_bms_proxy.cpp b/interfaces/inner_api/src/distributed_bms_proxy.cpp index 132e585d3d54cf8f6d894ef12be9b1bbccac5625..346fbb9a5f726d39f5ffd0b5102c55bb0e9857f9 100644 --- a/interfaces/inner_api/src/distributed_bms_proxy.cpp +++ b/interfaces/inner_api/src/distributed_bms_proxy.cpp @@ -91,7 +91,6 @@ int32_t DistributedBmsProxy::GetRemoteAbilityInfos(const std::vector &ele { APP_LOGD("DistributedBmsProxy GetAbilityInfos"); MessageParcel data; - MessageParcel reply; if (!data.WriteInterfaceToken(GetDescriptor())) { APP_LOGE("fail to GetAbilityInfos due to write InterfaceToken fail"); return ERR_APPEXECFWK_PARCEL_ERROR; diff --git a/interfaces/kits/js/distributebundlemgr/distributed_bundle_mgr.cpp b/interfaces/kits/js/distributebundlemgr/distributed_bundle_mgr.cpp index 4d2315d0baa5792d08ae07c99d515bc79559f5d7..64e3d6833850d8b88259dfe9dc6fd9c213f71d54 100644 --- a/interfaces/kits/js/distributebundlemgr/distributed_bundle_mgr.cpp +++ b/interfaces/kits/js/distributebundlemgr/distributed_bundle_mgr.cpp @@ -77,7 +77,16 @@ static OHOS::sptr GetDistributedBundleMgr() return nullptr; } auto remoteObject = samgr->GetSystemAbility(OHOS::DISTRIBUTED_BUNDLE_MGR_SERVICE_SYS_ABILITY_ID); - return OHOS::iface_cast(remoteObject); + if (remoteObject == nullptr) { + APP_LOGE("GetDistributedBundleMgr remoteObject is nullptr"); + return nullptr; + } + auto distributeBundleMgr = OHOS::iface_cast(remoteObject); + if (distributeBundleMgr == nullptr) { + APP_LOGE("GetDistributedBundleMgr distributeBundleMgr is nullptr"); + return nullptr; + } + return distributeBundleMgr; } static std::string GetStringFromNAPI(napi_env env, napi_value value) diff --git a/services/dbms/include/distributed_bms.h b/services/dbms/include/distributed_bms.h index ac3d23bec165d45e28f332f81b020f372c026184..05365949cd2c0e1eea9fede582cb19d93f098897 100644 --- a/services/dbms/include/distributed_bms.h +++ b/services/dbms/include/distributed_bms.h @@ -148,8 +148,7 @@ private: void InitDeviceManager(); bool GetMediaBase64(std::unique_ptr &data, int64_t fileLength, std::string &imageType, std::string &value); - std::unique_ptr LoadResourceFile(std::string &path, int &len); - std::unique_ptr EncodeBase64(std::unique_ptr &data, int srcLen); + std::unique_ptr EncodeBase64(std::unique_ptr &data, int64_t srcLen); int32_t GetAbilityIconByContent( const AbilityInfo &abilityInfo, int32_t userId, RemoteAbilityInfo &remoteAbilityInfo); int32_t Base64WithoutCompress(std::unique_ptr &imageContent, size_t imageContentSize, diff --git a/services/dbms/src/distributed_bms.cpp b/services/dbms/src/distributed_bms.cpp index 4976b8cb23ebb304d31df5f6613d75a884538285..21627f8a8699f87608aa1b704e6458da343d37b5 100644 --- a/services/dbms/src/distributed_bms.cpp +++ b/services/dbms/src/distributed_bms.cpp @@ -215,7 +215,16 @@ static OHOS::sptr GetDistributedBundleMgr(con APP_LOGI("GetDistributedBundleMgr get remote d-bms"); remoteObject = samgr->CheckSystemAbility(OHOS::DISTRIBUTED_BUNDLE_MGR_SERVICE_SYS_ABILITY_ID, deviceId); } - return OHOS::iface_cast(remoteObject); + if (remoteObject == nullptr) { + APP_LOGE("GetDistributedBundleMgr remoteObject is nullptr"); + return nullptr; + } + auto distributeBundleMgr = OHOS::iface_cast(remoteObject); + if (distributeBundleMgr == nullptr) { + APP_LOGE("GetDistributedBundleMgr distributeBundleMgr is nullptr"); + return nullptr; + } + return distributeBundleMgr; } int32_t DistributedBms::GetRemoteAbilityInfo( @@ -320,7 +329,7 @@ int32_t DistributedBms::GetAbilityInfo(const OHOS::AppExecFwk::ElementName &elem APP_LOGE("DistributedBms GetBundleMgr failed"); return ERR_APPEXECFWK_FAILED_SERVICE_DIED; } - int userId = AccountManagerHelper::GetCurrentActiveUserId(); + auto userId = AccountManagerHelper::GetCurrentActiveUserId(); if (userId == Constants::INVALID_USERID) { APP_LOGE("GetCurrentUserId failed"); return ERR_BUNDLE_MANAGER_INVALID_USER_ID; @@ -365,7 +374,7 @@ int32_t DistributedBms::GetAbilityIconByContent( APP_LOGE("DistributedBms GetMediaData failed"); return ret; } - APP_LOGD("imageContentSize is %{public}d", static_cast(imageContentSize)); + APP_LOGD("imageContentSize is %{public}d", imageContentSize); std::unique_ptr imageCompress = std::make_unique(); if (imageCompress->IsImageNeedCompressBySize(imageContentSize)) { std::unique_ptr compressData; @@ -441,7 +450,7 @@ bool DistributedBms::GetDistributedBundleInfo(const std::string &networkId, cons DistributedBundleInfo &distributedBundleInfo) { #ifdef HICOLLIE_ENABLE - int timerId = HiviewDFX::XCollie::GetInstance().SetTimer("GetDistributedBundleInfo", LOCAL_TIME_OUT_SECONDS, + auto timerId = HiviewDFX::XCollie::GetInstance().SetTimer("GetDistributedBundleInfo", LOCAL_TIME_OUT_SECONDS, nullptr, nullptr, HiviewDFX::XCOLLIE_FLAG_RECOVERY); #endif bool ret = DistributedDataStorage::GetInstance()->GetStorageDistributeInfo( @@ -472,15 +481,16 @@ int32_t DistributedBms::GetDistributedBundleName(const std::string &networkId, return ret; } -std::unique_ptr DistributedBms::EncodeBase64(std::unique_ptr &data, int srcLen) +std::unique_ptr DistributedBms::EncodeBase64(std::unique_ptr &data, int64_t srcLen) { - int len = (srcLen / DECODE_VALUE_THREE) * DECODE_VALUE_FOUR; // Split 3 bytes to 4 parts, each containing 6 bits. - int outLen = ((srcLen % DECODE_VALUE_THREE) != 0) ? (len + DECODE_VALUE_FOUR) : len; + // Split 3 bytes to 4 parts, each containing 6 bits. + int64_t len = (srcLen / DECODE_VALUE_THREE) * DECODE_VALUE_FOUR; + int64_t outLen = ((srcLen % DECODE_VALUE_THREE) != 0) ? (len + DECODE_VALUE_FOUR) : len; const uint8_t *srcData = data.get(); std::unique_ptr result = std::make_unique(outLen + DECODE_VALUE_ONE); char *dstData = result.get(); - int j = 0; - int i = 0; + int64_t j = 0; + int64_t i = 0; for (; i < srcLen - DECODE_VALUE_THREE; i += DECODE_VALUE_THREE) { unsigned char byte1 = srcData[i]; unsigned char byte2 = srcData[i + DECODE_VALUE_ONE]; diff --git a/services/dbms/src/distributed_bms_host.cpp b/services/dbms/src/distributed_bms_host.cpp index fd0a28a4faae09560f64677741b06796a50b51e2..7ea61464cba230ea91d54a04fa4228b5ff7c5417 100644 --- a/services/dbms/src/distributed_bms_host.cpp +++ b/services/dbms/src/distributed_bms_host.cpp @@ -38,7 +38,8 @@ DistributedBmsHost::~DistributedBmsHost() APP_LOGI("DistributedBmsHost instance is destroyed"); } -int DistributedBmsHost::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) +int32_t DistributedBmsHost::OnRemoteRequest( + uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { BundleMemoryGuard memoryGuard; APP_LOGI("DistributedBmsHost receives message from client, code = %{public}u, flags = %{public}d", code, @@ -73,7 +74,7 @@ int DistributedBmsHost::OnRemoteRequest(uint32_t code, MessageParcel &data, Mess return NO_ERROR; } -int DistributedBmsHost::HandleGetRemoteAbilityInfo(Parcel &data, Parcel &reply) +int32_t DistributedBmsHost::HandleGetRemoteAbilityInfo(Parcel &data, Parcel &reply) { APP_LOGI("DistributedBmsHost handle get remote ability info"); std::unique_ptr elementName(data.ReadParcelable()); @@ -83,7 +84,7 @@ int DistributedBmsHost::HandleGetRemoteAbilityInfo(Parcel &data, Parcel &reply) } std::string localeInfo = data.ReadString(); RemoteAbilityInfo remoteAbilityInfo; - int ret = GetRemoteAbilityInfo(*elementName, localeInfo, remoteAbilityInfo); + int32_t ret = GetRemoteAbilityInfo(*elementName, localeInfo, remoteAbilityInfo); if (ret != NO_ERROR) { APP_LOGE("GetRemoteAbilityInfo result:%{public}d", ret); return ret; @@ -99,7 +100,7 @@ int DistributedBmsHost::HandleGetRemoteAbilityInfo(Parcel &data, Parcel &reply) return NO_ERROR; } -int DistributedBmsHost::HandleGetRemoteAbilityInfos(Parcel &data, Parcel &reply) +int32_t DistributedBmsHost::HandleGetRemoteAbilityInfos(Parcel &data, Parcel &reply) { APP_LOGI("DistributedBmsHost handle get remote ability infos"); std::vector elementNames; @@ -109,7 +110,7 @@ int DistributedBmsHost::HandleGetRemoteAbilityInfos(Parcel &data, Parcel &reply) } std::string localeInfo = data.ReadString(); std::vector remoteAbilityInfos; - int ret = GetRemoteAbilityInfos(elementNames, localeInfo, remoteAbilityInfos); + int32_t ret = GetRemoteAbilityInfos(elementNames, localeInfo, remoteAbilityInfos); if (ret != NO_ERROR) { APP_LOGE("GetRemoteAbilityInfos result:%{public}d", ret); return ret; @@ -126,7 +127,7 @@ int DistributedBmsHost::HandleGetRemoteAbilityInfos(Parcel &data, Parcel &reply) } -int DistributedBmsHost::HandleGetAbilityInfo(Parcel &data, Parcel &reply) +int32_t DistributedBmsHost::HandleGetAbilityInfo(Parcel &data, Parcel &reply) { APP_LOGI("DistributedBmsHost handle get ability info"); std::unique_ptr elementName(data.ReadParcelable()); @@ -136,7 +137,7 @@ int DistributedBmsHost::HandleGetAbilityInfo(Parcel &data, Parcel &reply) } std::string localeInfo = data.ReadString(); RemoteAbilityInfo remoteAbilityInfo; - int ret = GetAbilityInfo(*elementName, localeInfo, remoteAbilityInfo); + int32_t ret = GetAbilityInfo(*elementName, localeInfo, remoteAbilityInfo); if (ret != NO_ERROR) { APP_LOGE("GetAbilityInfo result:%{public}d", ret); return ret; @@ -152,7 +153,7 @@ int DistributedBmsHost::HandleGetAbilityInfo(Parcel &data, Parcel &reply) return NO_ERROR; } -int DistributedBmsHost::HandleGetAbilityInfos(Parcel &data, Parcel &reply) +int32_t DistributedBmsHost::HandleGetAbilityInfos(Parcel &data, Parcel &reply) { APP_LOGI("DistributedBmsHost handle get ability infos"); std::vector elementNames; @@ -162,7 +163,7 @@ int DistributedBmsHost::HandleGetAbilityInfos(Parcel &data, Parcel &reply) } std::string localeInfo = data.ReadString(); std::vector remoteAbilityInfos; - int ret = GetAbilityInfos(elementNames, localeInfo, remoteAbilityInfos); + int32_t ret = GetAbilityInfos(elementNames, localeInfo, remoteAbilityInfos); if (ret != NO_ERROR) { APP_LOGE("GetAbilityInfos result:%{public}d", ret); return ret; @@ -178,7 +179,7 @@ int DistributedBmsHost::HandleGetAbilityInfos(Parcel &data, Parcel &reply) return NO_ERROR; } -int DistributedBmsHost::HandleGetDistributedBundleInfo(Parcel &data, Parcel &reply) +int32_t DistributedBmsHost::HandleGetDistributedBundleInfo(Parcel &data, Parcel &reply) { APP_LOGI("DistributedBmsHost handle get distributedBundleInfo"); std::string networkId = data.ReadString(); @@ -239,6 +240,10 @@ bool DistributedBmsHost::GetParcelableInfos(Parcel &data, std::vector &parcel APP_LOGE("GetParcelableInfos elements num exceeds the limit %{public}d", GET_REMOTE_ABILITY_INFO_MAX_SIZE); return false; } + if (infoSize < 0) { + APP_LOGE("GetParcelableInfos failed, for infoSize is negative"); + return false; + } for (int32_t i = 0; i < infoSize; i++) { std::unique_ptr info(data.ReadParcelable()); if (!info) { diff --git a/services/dbms/src/image_compress.cpp b/services/dbms/src/image_compress.cpp index 894bc16b6454f3f3103b60e427fc94c33994efe0..6cc22ee46b26ce88bf38d4defaa4934a3c598834 100644 --- a/services/dbms/src/image_compress.cpp +++ b/services/dbms/src/image_compress.cpp @@ -34,7 +34,7 @@ namespace { const std::string WEBP_FORMAT = "image/webp"; const std::string BUNDLE_PATH = "/data/app/el1/bundle"; constexpr int32_t QUALITY = 20; - constexpr int32_t MUNBER_ONE = 1; + constexpr int32_t NUMBER_ONE = 1; constexpr int64_t BUFFER_SIZE = 2 * 1024 * 1024; constexpr int32_t FILE_MAX_SIZE = 10240; constexpr int32_t FILE_COMPRESS_SIZE = 4096; @@ -170,7 +170,7 @@ bool ImageCompress::CompressImageByContent(const std::unique_ptr &fil Media::PackOption packOption; packOption.format = imageType; packOption.quality = QUALITY; - packOption.numberHint = MUNBER_ONE; + packOption.numberHint = NUMBER_ONE; uint8_t *resultBuffer = reinterpret_cast(malloc(BUFFER_SIZE)); if (resultBuffer == nullptr) { APP_LOGE("image packer malloc buffer failed.");