Validate package type in platform manifest 89/60289/4
authorTomasz Iwanek <t.iwanek@samsung.com>
Wed, 24 Feb 2016 15:49:39 +0000 (16:49 +0100)
committerTomasz Iwanek <t.iwanek@samsung.com>
Mon, 29 Feb 2016 09:44:21 +0000 (01:44 -0800)
Change-Id: I10b1bc37b051f6ee8f8b0b464988c7a5e5c8d68c

src/tpk_manifest_handlers/package_handler.cc

index 10868b2da24298d76f1f4b775908c0170dfaae95..42971da079f14fb6b4703750432b32ecebe631a1 100644 (file)
@@ -34,6 +34,8 @@ const char kLabelTextKey[] = "#text";
 const char kPreload[] = "@preload";
 const std::set<std::string> kInstallLocationAllowedValues =
     {"auto", "internal-only", "prefer-external"};
+const std::set<std::string> kPackageTypeAllowedValues =
+    {"tpk", "wgt", "rpm"};
 
 bool ParsePackageAndStore(
     const parser::DictionaryValue& manifest_dict,
@@ -147,6 +149,13 @@ bool PackageHandler::Validate(
     return false;
   }
 
+  if (!app_info.type().empty() &&
+      kPackageTypeAllowedValues.find(app_info.type()) ==
+      kPackageTypeAllowedValues.end()) {
+    *error = "Invalid package type";
+    return false;
+  }
+
   const std::string& version = app_info.version();
   if (version.empty()) {
     *error =