diff options
author | Zofia Abramowska <z.abramowska@samsung.com> | 2016-04-07 12:57:01 +0200 |
---|---|---|
committer | Tomasz Swierczek <t.swierczek@samsung.com> | 2016-06-22 22:18:14 -0700 |
commit | e4535a7e6b52d38b6b218ac473a0c07ec84f41c2 (patch) | |
tree | 1257a3cbb2b4e57b6a01e8b7028bbb964fa7c842 | |
parent | e7577894248f744606310452be0a78255e20aed2 (diff) | |
download | security-manager-e4535a7e6b52d38b6b218ac473a0c07ec84f41c2.tar.gz security-manager-e4535a7e6b52d38b6b218ac473a0c07ec84f41c2.tar.bz2 security-manager-e4535a7e6b52d38b6b218ac473a0c07ec84f41c2.zip |
Return error when private sharing doesn't exist
Change-Id: Ib2f79da356c9b6830afe0654e79f70b627842ec4
-rw-r--r-- | src/common/service_impl.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/service_impl.cpp b/src/common/service_impl.cpp index a14491f0..65b7bf95 100644 --- a/src/common/service_impl.cpp +++ b/src/common/service_impl.cpp @@ -140,6 +140,13 @@ bool isTizen2XVersion(const std::string &version) return false; } +bool sharingExists(const std::string &targetAppName, const std::string &path) +{ + int targetPathCount; + PrivilegeDb::getInstance().GetTargetPathSharingCount(targetAppName, path, targetPathCount); + return targetPathCount != 0; +} + class ScopedTransaction { public: ScopedTransaction() : m_isCommited(false) { @@ -1297,6 +1304,11 @@ int ServiceImpl::dropPrivatePathSharing( } for(const auto &path : paths) { + if (!sharingExists(targetAppName, path)) { + LogError("Sharing doesn't exist: owner=" << ownerAppName + << ", target=" << targetAppName << ", path=" << path); + return SECURITY_MANAGER_ERROR_INPUT_PARAM; + } std::string pathLabel = SmackLabels::getSmackLabelFromPath(path); if (pathLabel != SmackLabels::generatePkgLabel(ownerPkgName)) { std::string generatedPathLabel = SmackLabels::generateSharedPrivateLabel(ownerPkgName, path); |