From 20b616c68648c139d1df0b0323961c894904d537 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 22 Aug 2025 15:56:32 +0800 Subject: [PATCH 1/5] fix err in code Signed-off-by: unknown --- services/diffpatch/diff/blocks_diff.cpp | 5 +++++ services/fs_manager/do_partition.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/services/diffpatch/diff/blocks_diff.cpp b/services/diffpatch/diff/blocks_diff.cpp index 29d4fab2..349f8b91 100644 --- a/services/diffpatch/diff/blocks_diff.cpp +++ b/services/diffpatch/diff/blocks_diff.cpp @@ -34,6 +34,7 @@ constexpr uint32_t BUCKET_SIZE = 256; constexpr uint32_t MULTIPLE_TWO = 2; constexpr int64_t BLOCK_SCORE = 8; constexpr int64_t MIN_LENGTH = 16; +constexpr uint32_t MAX_PATCH_LENGTH = 1073741824; static void WriteLE64(const BlockBuffer &buffer, int64_t value) { @@ -79,6 +80,10 @@ int32_t BlocksDiff::MakePatch(const std::string &oldFileName, const std::string } BlockBuffer newInfo = {newBuffer.memory, newBuffer.length}; BlockBuffer oldInfo = {oldBuffer.memory, oldBuffer.length}; + if (oldInfo.length > MAX_PATCH_LENGTH) { + PATCH_LOGE("length is illegal"); + return -1; + } std::unique_ptr blockdiff = std::make_unique(patchFile, 0); size_t patchSize = 0; ret = blockdiff->MakePatch(newInfo, oldInfo, patchSize); diff --git a/services/fs_manager/do_partition.cpp b/services/fs_manager/do_partition.cpp index 97e19b66..a00f243e 100644 --- a/services/fs_manager/do_partition.cpp +++ b/services/fs_manager/do_partition.cpp @@ -199,6 +199,7 @@ static void DestroyDiskDevices(const Disk &disk) free(disk.dev->specific); } free(disk.dev); + disk.dev = NULL; } } -- Gitee From 0910d2d6bdaae0ea5c5b154d63c5f763d0e34a91 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 22 Aug 2025 17:17:36 +0800 Subject: [PATCH 2/5] fix err in code Signed-off-by: unknown --- services/fs_manager/do_partition.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/fs_manager/do_partition.cpp b/services/fs_manager/do_partition.cpp index a00f243e..fd2c9b71 100644 --- a/services/fs_manager/do_partition.cpp +++ b/services/fs_manager/do_partition.cpp @@ -192,7 +192,7 @@ static void DestroyDiskPartitions(Disk &disk) disk.partList.clear(); } -static void DestroyDiskDevices(const Disk &disk) +static void DestroyDiskDevices(Disk &disk) { if (disk.dev != nullptr) { if (disk.dev->specific != nullptr) { -- Gitee From 72440ade2f9878b784255ed11984910edb83ab7a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 Aug 2025 17:25:24 +0800 Subject: [PATCH 3/5] fix err in code Signed-off-by: unknown --- services/diffpatch/diff/blocks_diff.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/diffpatch/diff/blocks_diff.cpp b/services/diffpatch/diff/blocks_diff.cpp index 349f8b91..47835e07 100644 --- a/services/diffpatch/diff/blocks_diff.cpp +++ b/services/diffpatch/diff/blocks_diff.cpp @@ -34,7 +34,7 @@ constexpr uint32_t BUCKET_SIZE = 256; constexpr uint32_t MULTIPLE_TWO = 2; constexpr int64_t BLOCK_SCORE = 8; constexpr int64_t MIN_LENGTH = 16; -constexpr uint32_t MAX_PATCH_LENGTH = 1073741824; +constexpr uint32_t MAX_PATCH_LENGTH = 1024 * 1024 * 1024; // 1G static void WriteLE64(const BlockBuffer &buffer, int64_t value) { -- Gitee From a140c014b6bb6df4367c1ec8dda008b1b49230c7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 Aug 2025 20:01:04 +0800 Subject: [PATCH 4/5] fix err in code Signed-off-by: unknown --- services/fs_manager/do_partition.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/services/fs_manager/do_partition.cpp b/services/fs_manager/do_partition.cpp index fd2c9b71..852b919c 100644 --- a/services/fs_manager/do_partition.cpp +++ b/services/fs_manager/do_partition.cpp @@ -197,6 +197,7 @@ static void DestroyDiskDevices(Disk &disk) if (disk.dev != nullptr) { if (disk.dev->specific != nullptr) { free(disk.dev->specific); + disk.dev->specific = NULL; } free(disk.dev); disk.dev = NULL; -- Gitee From e83581573280c0e49a93a6f67d5f28200037bbf7 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 Aug 2025 20:07:20 +0800 Subject: [PATCH 5/5] fix err in code Signed-off-by: unknown --- services/diffpatch/diff/blocks_diff.cpp | 2 +- services/fs_manager/do_partition.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/diffpatch/diff/blocks_diff.cpp b/services/diffpatch/diff/blocks_diff.cpp index 47835e07..8396667f 100644 --- a/services/diffpatch/diff/blocks_diff.cpp +++ b/services/diffpatch/diff/blocks_diff.cpp @@ -81,7 +81,7 @@ int32_t BlocksDiff::MakePatch(const std::string &oldFileName, const std::string BlockBuffer newInfo = {newBuffer.memory, newBuffer.length}; BlockBuffer oldInfo = {oldBuffer.memory, oldBuffer.length}; if (oldInfo.length > MAX_PATCH_LENGTH) { - PATCH_LOGE("length is illegal"); + PATCH_LOGE("length is illegal, current length is %zu", oldInfo.length); return -1; } std::unique_ptr blockdiff = std::make_unique(patchFile, 0); diff --git a/services/fs_manager/do_partition.cpp b/services/fs_manager/do_partition.cpp index 852b919c..a81d37b7 100644 --- a/services/fs_manager/do_partition.cpp +++ b/services/fs_manager/do_partition.cpp @@ -197,10 +197,10 @@ static void DestroyDiskDevices(Disk &disk) if (disk.dev != nullptr) { if (disk.dev->specific != nullptr) { free(disk.dev->specific); - disk.dev->specific = NULL; + disk.dev->specific = nullptr; } free(disk.dev); - disk.dev = NULL; + disk.dev = nullptr; } } -- Gitee