From dd36ffc8ec218581d30899ad1daa348dbd347ad4 Mon Sep 17 00:00:00 2001 From: hanqiaosheng Date: Tue, 17 May 2022 11:28:21 +0800 Subject: [PATCH 1/3] fixed 44590e4 from https://gitee.com/high_level/update_updater/pulls/122 Signed-off-by:high_level <352754628@qq.com> --- .../package/pkg_manager/pkg_managerImpl.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/services/package/pkg_manager/pkg_managerImpl.cpp b/services/package/pkg_manager/pkg_managerImpl.cpp index a1df7bb9..8fc68b86 100644 --- a/services/package/pkg_manager/pkg_managerImpl.cpp +++ b/services/package/pkg_manager/pkg_managerImpl.cpp @@ -592,10 +592,14 @@ int32_t PkgManagerImpl::GenerateFileDigest(PkgStreamPtr stream, PkgBuffer data(SIGN_TOTAL_LEN); PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_NO_SIGN, algorithmInner->Update(data, SIGN_TOTAL_LEN)); } - PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_HAS_SIGN, - PkgBuffer result(digestInfos[DIGEST_INFO_HAS_SIGN].data(), digestLen); algorithm->Final(result)); - PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_NO_SIGN, - PkgBuffer result(digestInfos[DIGEST_INFO_NO_SIGN].data(), digestLen); algorithmInner->Final(result)); + if (flags & DIGEST_FLAGS_HAS_SIGN) { + PkgBuffer result(digestInfos[DIGEST_INFO_HAS_SIGN].data(), digestLen); + algorithm->Final(result); + } + if (lags & DIGEST_FLAGS_NO_SIGN) { + PkgBuffer result(digestInfos[DIGEST_INFO_NO_SIGN].data(), digestLen); + algorithmInner->Final(result); + } if (flags & DIGEST_FLAGS_SIGNATURE) { if (digestMethod == PKG_DIGEST_TYPE_SHA256) { PKG_CHECK(!memcpy_s(digestInfos[DIGEST_INFO_SIGNATURE].data(), signatureLen, buff.buffer, signatureLen), @@ -801,7 +805,10 @@ int32_t PkgManagerImpl::VerifyBinFile(const std::string &packagePath, const std: int8_t digestMethod = static_cast(DigestAlgorithm::GetDigestMethod(version)); size_t digestLen = DigestAlgorithm::GetDigestLen(digestMethod); size_t signatureLen = DigestAlgorithm::GetSignatureLen(digestMethod); - PKG_CHECK(digestLen == digest.length, return PKG_INVALID_PARAM, "Invalid digestLen"); + if (digestLen != digest.length) { + PKG_LOGE("Invalid digestLen"); + return PKG_INVALID_PARAM; + } std::vector> digestInfos(DIGEST_INFO_SIGNATURE + 1); digestInfos[DIGEST_INFO_HAS_SIGN].resize(digestLen); digestInfos[DIGEST_INFO_NO_SIGN].resize(digestLen); -- Gitee From c3ef289c229fe4581ec38611de1c5b3cc54c6b19 Mon Sep 17 00:00:00 2001 From: hanqiaosheng Date: Tue, 17 May 2022 11:10:30 +0800 Subject: [PATCH 2/3] fixed c9a57fc from https://gitee.com/high_level/update_updater/pulls/122 Signed-off-by:high_level <352754628@qq.com> --- services/applypatch/data_writer.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/applypatch/data_writer.cpp b/services/applypatch/data_writer.cpp index 5ed853d8..e47f3127 100644 --- a/services/applypatch/data_writer.cpp +++ b/services/applypatch/data_writer.cpp @@ -50,8 +50,7 @@ std::unique_ptr DataWriter::CreateDataWriter(WriteMode mode, const s uint64_t offset) { switch (mode) { - case WRITE_RAW: - { + case WRITE_RAW: { std::unique_ptr writer(std::make_unique(path, offset)); return std::move(writer); } -- Gitee From 34eeea2e03430f824618cebafc72e16b5dc84404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8A=E5=BA=94=E5=A4=A9=E6=97=B6?= <352754628@qq.com> Date: Fri, 20 May 2022 07:38:43 +0000 Subject: [PATCH 3/3] update services/package/pkg_manager/pkg_managerImpl.cpp. --- services/package/pkg_manager/pkg_managerImpl.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/services/package/pkg_manager/pkg_managerImpl.cpp b/services/package/pkg_manager/pkg_managerImpl.cpp index 8fc68b86..0ea26096 100644 --- a/services/package/pkg_manager/pkg_managerImpl.cpp +++ b/services/package/pkg_manager/pkg_managerImpl.cpp @@ -592,14 +592,10 @@ int32_t PkgManagerImpl::GenerateFileDigest(PkgStreamPtr stream, PkgBuffer data(SIGN_TOTAL_LEN); PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_NO_SIGN, algorithmInner->Update(data, SIGN_TOTAL_LEN)); } - if (flags & DIGEST_FLAGS_HAS_SIGN) { - PkgBuffer result(digestInfos[DIGEST_INFO_HAS_SIGN].data(), digestLen); - algorithm->Final(result); - } - if (lags & DIGEST_FLAGS_NO_SIGN) { - PkgBuffer result(digestInfos[DIGEST_INFO_NO_SIGN].data(), digestLen); - algorithmInner->Final(result); - } + PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_HAS_SIGN, + PkgBuffer result(digestInfos[DIGEST_INFO_HAS_SIGN].data(), digestLen); algorithm->Final(result)); + PKG_IS_TRUE_DONE(flags & DIGEST_FLAGS_NO_SIGN, + PkgBuffer result(digestInfos[DIGEST_INFO_NO_SIGN].data(), digestLen); algorithmInner->Final(result)); if (flags & DIGEST_FLAGS_SIGNATURE) { if (digestMethod == PKG_DIGEST_TYPE_SHA256) { PKG_CHECK(!memcpy_s(digestInfos[DIGEST_INFO_SIGNATURE].data(), signatureLen, buff.buffer, signatureLen), -- Gitee