return true;
}
+bool AppendPrivilegeToList(const char* type, const char* privilege_str,
+ GList** list) {
+ privilege_x* privilege =
+ reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
+ if (!privilege) {
+ LOG(ERROR) << "Out of memory";
+ return false;
+ }
+ privilege->type = strdup(type);
+ privilege->value = strdup(privilege_str);
+ *list = g_list_append(*list, privilege);
+
+ return true;
+}
+
} // namespace
namespace common_installer {
if (internal_priv_type_ == InternalPrivType::TPK ||
internal_priv_type_ == InternalPrivType::BOTH) {
- privilege_x* privilege =
- reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
- if (!privilege) {
- LOG(ERROR) << "Out of memory";
+ if (!AppendPrivilegeToList(kNativePrivilegeType, internal_priv.c_str(),
+ &context_->manifest_data.get()->privileges))
return Step::Status::ERROR;
+ if (context_->debug_mode.get()) {
+ if (!AppendPrivilegeToList(kNativePrivilegeType,
+ kAppDebuggingPrivilegeStr,
+ &context_->manifest_data.get()->privileges))
+ return Step::Status::ERROR;
}
- privilege->type = strdup(kNativePrivilegeType);
- privilege->value = strdup(internal_priv.c_str());
- context_->manifest_data.get()->privileges =
- g_list_append(context_->manifest_data.get()->privileges, privilege);
}
if (internal_priv_type_ == InternalPrivType::WGT ||
internal_priv_type_ == InternalPrivType::BOTH) {
- privilege_x* privilege =
- reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
- if (!privilege) {
- LOG(ERROR) << "Out of memory";
- return Step::Status::ERROR;
- }
- privilege->type = strdup(kWebPrivilegeType);
- privilege->value = strdup(internal_priv.c_str());
- context_->manifest_data.get()->privileges =
- g_list_append(context_->manifest_data.get()->privileges, privilege);
- }
-
- if (context_->debug_mode.get()) {
- privilege_x* privilege =
- reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
- if (!privilege) {
- LOG(ERROR) << "Out of memory";
+ if (!AppendPrivilegeToList(kWebPrivilegeType, internal_priv.c_str(),
+ &context_->manifest_data.get()->privileges))
return Step::Status::ERROR;
+ if (context_->debug_mode.get()) {
+ if (!AppendPrivilegeToList(kWebPrivilegeType,
+ kAppDebuggingPrivilegeStr,
+ &context_->manifest_data.get()->privileges))
+ return Step::Status::ERROR;
}
- privilege->type = internal_priv_type_ == InternalPrivType::TPK ?
- strdup(kNativePrivilegeType) : strdup(kWebPrivilegeType);
- privilege->value = strdup(kAppDebuggingPrivilegeStr);
- context_->manifest_data.get()->privileges =
- g_list_append(context_->manifest_data.get()->privileges, privilege);
}
return TranslatePrivilegesForCompatibility(context_->manifest_data.get()) ?