From: Damian Pietruchowski Date: Tue, 24 Jan 2017 15:18:28 +0000 (+0100) Subject: Fix unregister security context for recovery X-Git-Tag: submit/tizen_3.0/20170216.102709~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F114328%2F2;p=platform%2Fcore%2Fappfw%2Fapp-installers.git Fix unregister security context for recovery For recovery of installation, in step StepRecoverSecurity app's directory did not exist and Check() method returns false. So in RecoveryNew() method UnregisterSecurityContextForManifest() was not executed. Change-Id: I73aa7db8eccfa1d6b74f941cf5db80ef487b3a11 Signed-off-by: Damian Pietruchowski (cherry picked from commit 75f8f0deff90239be0492a0674482ce305891c5b) --- diff --git a/src/common/step/security/step_recover_security.cc b/src/common/step/security/step_recover_security.cc index b60477e8..91e4a0d1 100644 --- a/src/common/step/security/step_recover_security.cc +++ b/src/common/step/security/step_recover_security.cc @@ -12,10 +12,10 @@ namespace common_installer { namespace security { -bool StepRecoverSecurity::Check() { +bool StepRecoverSecurity::Check(bool is_update) { if (context_->pkg_path.get().empty()) return false; - if (!boost::filesystem::exists(context_->pkg_path.get())) + if (!boost::filesystem::exists(context_->pkg_path.get()) && is_update) return false; if (context_->pkgid.get().empty()) return false; @@ -25,7 +25,7 @@ bool StepRecoverSecurity::Check() { } Step::Status StepRecoverSecurity::RecoveryNew() { - if (!Check()) + if (!Check(false)) return Status::OK; std::string error_message; if (!UnregisterSecurityContextForManifest( @@ -42,7 +42,7 @@ Step::Status StepRecoverSecurity::RecoveryNew() { } Step::Status StepRecoverSecurity::RecoveryUpdate() { - if (!Check()) { + if (!Check(true)) { LOG(ERROR) << "Invalid parameters"; return Status::INVALID_VALUE; } diff --git a/src/common/step/security/step_recover_security.h b/src/common/step/security/step_recover_security.h index 837ea894..3e41dd48 100644 --- a/src/common/step/security/step_recover_security.h +++ b/src/common/step/security/step_recover_security.h @@ -30,7 +30,7 @@ class StepRecoverSecurity : public recovery::StepRecovery { Status RecoveryNew() override; Status RecoveryUpdate() override; private: - bool Check(); + bool Check(bool is_update); STEP_NAME(RecoverSecurity) };