已关闭
代码优化 #896
毕水秀创建于 20 天前关闭于 6 天前
代码优化 #896
已关闭
共 3 个文件变更+29-1
| @@ -361,6 +361,10 @@ int32_t DlpFileManager::PrepareParms(const std::shared_ptr<DlpFile>& filePtr, co | |||
| 361 | 361 | ||
| 362 | int32_t DlpFileManager::SetDlpFileParams(std::shared_ptr<DlpFile>& filePtr, const DlpProperty& property) const | 362 | int32_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 | |||
| 731 | int32_t DlpFileManager::ParseRawDlpFile(int32_t dlpFileFd, std::shared_ptr<DlpFile>& filePtr, const std::string& appId, | 735 | int32_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 | |||
| 827 | int32_t DlpFileManager::ParseZipDlpFile(std::shared_ptr<DlpFile>& filePtr, const std::string& appId, int32_t dlpFileFd, | 835 | int32_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 | |||
| 876 | int32_t DlpFileManager::ParseZipDlpFileAndAddNode(std::shared_ptr<DlpFile>& filePtr, const std::string& appId, | 888 | int32_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, | |||
| 782 | int32_t DlpCredential::ParseDlpInfo(const sptr<CertParcel>& certParcel, const sptr<IDlpPermissionCallback>& callback, | 786 | int32_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 | } |