Prevent from memory corruption 14/101314/1
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 30 Nov 2016 18:17:30 +0000 (19:17 +0100)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 30 Nov 2016 18:26:21 +0000 (19:26 +0100)
Change-Id: Ieb8312031d606cc02ef2637cfece19f48cb0ba82

src/agent/notification-daemon/AskUserTalker.cpp

index 32e099b..6644eff 100644 (file)
@@ -77,13 +77,12 @@ void setSecurityLevel(const std::string &app, const std::string &perm, const std
         }
         PolicyRequest updateRequest;
 
-        for (const auto &priv : privacyPrivs) {
-            PolicyEntry entry;
-            entry.setApp(appName);
-            entry.setPrivilege(priv);
-            entry.setLevel(level);
-
-            updateRequest.addEntry(entry);
+        std::vector<PolicyEntry> entryVector(privacyPrivs.size());
+        for (size_t i=0; i < privacyPrivs.size(); ++i) {
+            entryVector[i].setApp(appName);
+            entryVector[i].setPrivilege(privacyPrivs[i]);
+            entryVector[i].setLevel(level);
+            updateRequest.addEntry(entryVector[i]);
         }
         updateRequest.updatePolicy();
         ALOGD("SecurityManager: Setting level succeeded");