diff --git a/util/src/sandbox_utils.cpp b/util/src/sandbox_utils.cpp index ffdc03920d5f367d422387ec92691eb71d87070d..88a46f40a12f9908a491323527b7caba0a182d1d 100644 --- a/util/src/sandbox_utils.cpp +++ b/util/src/sandbox_utils.cpp @@ -351,7 +351,7 @@ static int ConvertFlagStr(const std::string &flagStr) {"DLP_MANAGER", 2}}; if (flagsMap.count(flagStr)) { - return flagsMap.at(flagStr); + return 1 << flagsMap.at(flagStr); } return -1; @@ -369,7 +369,7 @@ int SandboxUtils::DoAllMntPointsMount(const ClientSocket::AppProperty *appProper bool checkFlag = false; if (appConfig.find(FLAGS) != appConfig.end()) { std::string flagsStr = appConfig[FLAGS].get(); - if (ConvertFlagStr(flagsStr) == appProperty->flags && + if ((ConvertFlagStr(flagsStr) & appProperty->flags) && bundleName.find("wps") != std::string::npos) { checkFlag = true; } @@ -497,7 +497,7 @@ int32_t SandboxUtils::HandleFlagsPoint(const ClientSocket::AppProperty *appPrope if (flagPoint.find(FLAGS) != flagPoint.end()) { std::string flagsStr = flagPoint[FLAGS].get(); int flag = ConvertFlagStr(flagsStr); - if (appProperty->flags == flag) { + if (appProperty->flags & flag) { return DoAllMntPointsMount(appProperty, flagPoint); } } else {