已关闭
代码优化 #896
代码优化 #896
已关闭
毕水秀创建于 20 天前关闭于 6 天前
3 个文件变更+29-1
@@ -361,6 +361,10 @@ int32_t DlpFileManager::PrepareParms(const std::shared_ptr<DlpFile>& filePtr, co
361 361 
362int32_t DlpFileManager::SetDlpFileParams(std::shared_ptr<DlpFile>& filePtr, const DlpProperty& property) const362int32_t DlpFileManager::SetDlpFileParams(std::shared_ptr<DlpFile>& filePtr, const DlpProperty& property) const
363{363{
364+ if (filePtr == nullptr) {
365+ DLP_LOG_ERROR(LABEL, "SetDlpFileParams fail, filePtr is null");
366+ return DLP_PARSE_ERROR_PTR_NULL;
367+ }
364 PermissionPolicy policy(property);368 PermissionPolicy policy(property);
365 int result = PrepareParms(filePtr, property, policy);369 int result = PrepareParms(filePtr, property, policy);
366 if (result != DLP_OK) {370 if (result != DLP_OK) {
@@ -731,6 +735,10 @@ static int32_t SetEnterpriseInfoForDlpFile(int32_t dlpFileFd, std::shared_ptr<Dl
731int32_t DlpFileManager::ParseRawDlpFile(int32_t dlpFileFd, std::shared_ptr<DlpFile>& filePtr, const std::string& appId,735int32_t DlpFileManager::ParseRawDlpFile(int32_t dlpFileFd, std::shared_ptr<DlpFile>& filePtr, const std::string& appId,
732 const std::string& realType, sptr<CertParcel>& certParcel)736 const std::string& realType, sptr<CertParcel>& certParcel)
733{737{
738+ if (filePtr == nullptr || certParcel == nullptr) {
739+ DLP_LOG_ERROR(LABEL, "ParseRawDlpFile fail, filePtr or certParcel is null");
740+ return DLP_PARSE_ERROR_PTR_NULL;
741+ }
734 PermissionPolicy policy;742 PermissionPolicy policy;
735 filePtr->GetContactAccount(certParcel->contactAccount);743 filePtr->GetContactAccount(certParcel->contactAccount);
736 certParcel->isNeedAdapter = filePtr->NeedAdapter();744 certParcel->isNeedAdapter = filePtr->NeedAdapter();
@@ -827,6 +835,10 @@ static int32_t SetEnterpriseInfoForDlpFileAndCheck(int32_t dlpFileFd, std::share
827int32_t DlpFileManager::ParseZipDlpFile(std::shared_ptr<DlpFile>& filePtr, const std::string& appId, int32_t dlpFileFd,835int32_t DlpFileManager::ParseZipDlpFile(std::shared_ptr<DlpFile>& filePtr, const std::string& appId, int32_t dlpFileFd,
828 sptr<CertParcel>& certParcel)836 sptr<CertParcel>& certParcel)
829{837{
838+ if (filePtr == nullptr || certParcel == nullptr) {
839+ DLP_LOG_ERROR(LABEL, "ParseZipDlpFile fail, filePtr or certParcel is null");
840+ return DLP_PARSE_ERROR_PTR_NULL;
841+ }
830 PermissionPolicy policy;842 PermissionPolicy policy;
831 filePtr->GetContactAccount(certParcel->contactAccount);843 filePtr->GetContactAccount(certParcel->contactAccount);
832 certParcel->isNeedAdapter = filePtr->NeedAdapter();844 certParcel->isNeedAdapter = filePtr->NeedAdapter();
@@ -876,6 +888,10 @@ int32_t DlpFileManager::ParseZipDlpFile(std::shared_ptr<DlpFile>& filePtr, const
876int32_t DlpFileManager::ParseZipDlpFileAndAddNode(std::shared_ptr<DlpFile>& filePtr, const std::string& appId,888int32_t DlpFileManager::ParseZipDlpFileAndAddNode(std::shared_ptr<DlpFile>& filePtr, const std::string& appId,
877 int32_t dlpFileFd)889 int32_t dlpFileFd)
878{890{
891+ if (filePtr == nullptr) {
892+ DLP_LOG_ERROR(LABEL, "ParseZipDlpFileAndAddNode fail, filePtr is null");
893+ return DLP_PARSE_ERROR_PTR_NULL;
894+ }
879 int32_t result = filePtr->ProcessDlpFile();895 int32_t result = filePtr->ProcessDlpFile();
880 if (result != DLP_OK) {896 if (result != DLP_OK) {
881 return result;897 return result;
@@ -739,6 +739,10 @@ int32_t DlpCredential::ParseDlpCertificate(const sptr<CertParcel>& certParcel,
739 const std::string& appId, bool offlineAccess,739 const std::string& appId, bool offlineAccess,
740 AppExecFwk::ApplicationInfo& applicationInfo)740 AppExecFwk::ApplicationInfo& applicationInfo)
741{741{
742+ if (certParcel == nullptr) {
743+ DLP_LOG_ERROR(LABEL, "certParcel is null");
744+ return DLP_SERVICE_ERROR_VALUE_INVALID;
745+ }
742 std::string encDataJsonStr(certParcel->cert.begin(), certParcel->cert.end());746 std::string encDataJsonStr(certParcel->cert.begin(), certParcel->cert.end());
743 auto jsonObj = unordered_json::parse(encDataJsonStr, nullptr, false);747 auto jsonObj = unordered_json::parse(encDataJsonStr, nullptr, false);
744 if (jsonObj.is_discarded() || (!jsonObj.is_object())) {748 if (jsonObj.is_discarded() || (!jsonObj.is_object())) {
@@ -782,6 +786,10 @@ int32_t DlpCredential::ParseDlpCertificate(const sptr<CertParcel>& certParcel,
782int32_t DlpCredential::ParseDlpInfo(const sptr<CertParcel>& certParcel, const sptr<IDlpPermissionCallback>& callback,786int32_t DlpCredential::ParseDlpInfo(const sptr<CertParcel>& certParcel, const sptr<IDlpPermissionCallback>& callback,
783 DLP_EncPolicyData& encPolicy, AppExecFwk::ApplicationInfo& applicationInfo, DlpAccountType accountType)787 DLP_EncPolicyData& encPolicy, AppExecFwk::ApplicationInfo& applicationInfo, DlpAccountType accountType)
784{788{
789+ if (certParcel == nullptr) {
790+ DLP_LOG_ERROR(LABEL, "certParcel is null");
791+ return DLP_SERVICE_ERROR_VALUE_INVALID;
792+ }
785 int result = DLP_OK;793 int result = DLP_OK;
786 encPolicy.realType = strdup(const_cast<char *>(certParcel->realFileType.c_str()));794 encPolicy.realType = strdup(const_cast<char *>(certParcel->realFileType.c_str()));
787 if (encPolicy.realType == nullptr) {795 if (encPolicy.realType == nullptr) {
@@ -355,6 +355,10 @@ int32_t DlpPermissionService::GenerateDlpCertificate(
355 DLP_LOG_ERROR(LABEL, "Callback is null");355 DLP_LOG_ERROR(LABEL, "Callback is null");
356 return DLP_SERVICE_ERROR_VALUE_INVALID;356 return DLP_SERVICE_ERROR_VALUE_INVALID;
357 }357 }
358+ if (policyParcel == nullptr) {
359+ DLP_LOG_ERROR(LABEL, "PolicyParcel is null");
360+ return DLP_SERVICE_ERROR_VALUE_INVALID;
361+ }
358 362 
359 if (!policyParcel->policyParams_.IsValid()) {363 if (!policyParcel->policyParams_.IsValid()) {
360 return DLP_SERVICE_ERROR_VALUE_INVALID;364 return DLP_SERVICE_ERROR_VALUE_INVALID;
@@ -413,7 +417,7 @@ int32_t DlpPermissionService::ParseDlpCertificate(const sptr<CertParcel>& certPa
413 !(appIdentifier == MDM_APPIDENTIFIER)) {417 !(appIdentifier == MDM_APPIDENTIFIER)) {
414 return DLP_SERVICE_ERROR_PERMISSION_DENY;418 return DLP_SERVICE_ERROR_PERMISSION_DENY;
415 }419 }
416- if (callback == nullptr || certParcel->cert.size() > MAX_CERT_SIZE) {420+ if (callback == nullptr || certParcel == nullptr || certParcel->cert.size() > MAX_CERT_SIZE) {
417 DLP_LOG_ERROR(LABEL, "Callback is null or cert is invalid");421 DLP_LOG_ERROR(LABEL, "Callback is null or cert is invalid");
418 return DLP_SERVICE_ERROR_VALUE_INVALID;422 return DLP_SERVICE_ERROR_VALUE_INVALID;
419 }423 }