diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index aa1ebee0d791db60bebe4ff751123d2d3e011507..3208db4eaae50c8976c4dc3afdd8238922ed1820 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -49,7 +49,7 @@ TarFile &TarFile::GetInstance() bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, const string &pkPath, TarMap &tarMap) { - if (srcFiles.empty() || tarFileName.empty() || pkPath.empty()) { + if (tarFileName.empty() || pkPath.empty()) { HILOGE("Invalid parameter"); return false; } diff --git a/utils/src/b_filesystem/b_dir.cpp b/utils/src/b_filesystem/b_dir.cpp index 1154b0727e4bea6d604da428431c2454f432e4e3..41fba644d20df6abe7383625fd4dc80d7975cc90 100644 --- a/utils/src/b_filesystem/b_dir.cpp +++ b/utils/src/b_filesystem/b_dir.cpp @@ -189,7 +189,11 @@ tuple, vector> BDir::GetBigFiles(const return false; } for (const string &item : s) { - if (!item.empty() && (fnmatch(item.data(), str.data(), FNM_LEADING_DIR) == 0)) { + if (item.empty()) { + continue; + } + string::size_type idx = str.find(item); + if (fnmatch(item.data(), str.data(), FNM_LEADING_DIR) == 0 || (idx != string::npos && idx == 0)) { HILOGI("file %{public}s matchs exclude condition", str.c_str()); return true; } @@ -197,6 +201,14 @@ tuple, vector> BDir::GetBigFiles(const return false; }; + vector resSmallFiles; + for (const auto &item : incSmallFiles) { + if (!isMatch(excludes, item)) { + HILOGI("smallfile %{public}s matchs include condition and unmatchs exclude condition", item.c_str()); + resSmallFiles.insert(resSmallFiles.end(), item); + } + } + map bigFiles; for (const auto &item : incFiles) { if (!isMatch(excludes, item.first)) { @@ -205,8 +217,8 @@ tuple, vector> BDir::GetBigFiles(const } } HILOGI("total number of big files is %{public}d", static_cast(bigFiles.size())); - HILOGI("total number of small files is %{public}d", static_cast(incSmallFiles.size())); - return {ERR_OK, move(bigFiles), move(incSmallFiles)}; + HILOGI("total number of small files is %{public}d", static_cast(resSmallFiles.size())); + return {ERR_OK, move(bigFiles), move(resSmallFiles)}; } vector BDir::GetDirs(const vector &paths) diff --git a/utils/src/b_json/b_json_entity_extension_config.cpp b/utils/src/b_json/b_json_entity_extension_config.cpp index f6e7e751e214e05deaf0d0a944f80e608c2938f8..76d1ec21d5651249470cdbd94726e2625bafd94f 100644 --- a/utils/src/b_json/b_json_entity_extension_config.cpp +++ b/utils/src/b_json/b_json_entity_extension_config.cpp @@ -47,7 +47,7 @@ vector BJsonEntityExtensionConfig::GetIncludes() const vector dirs; for (auto &&item : obj_["includes"]) { - if (!item.isString()) { + if (!item.isString() || item.empty()) { HILOGE("Each item of array 'includes' must be of the type string"); continue; }