From b9beeed5a33a4e7a3613d4eb41cd7f7b3ff3981c Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Mon, 21 Aug 2017 15:53:54 -0700 Subject: [PATCH] Fix use-after-free of stack-allocated temporary string. Bug: 64848081 Test: built and successfully booted again Merged-In: I93c899249bf2cc5ab8d880c0eaff471518e73121 Change-Id: I08e6f71a7c5151544b9434eb0d362a236202cd31 --- init/init.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/init/init.cpp b/init/init.cpp index 715dd72a2..9671560eb 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -807,13 +807,15 @@ static bool selinux_load_split_policy() { return false; } std::string mapping_file("/system/etc/selinux/mapping/" + vend_plat_vers + ".cil"); + const std::string version_as_string = std::to_string(max_policy_version); + // clang-format off const char* compile_args[] = { "/system/bin/secilc", plat_policy_cil_file, "-M", "true", "-G", "-N", // Target the highest policy language version supported by the kernel - "-c", std::to_string(max_policy_version).c_str(), + "-c", version_as_string.c_str(), mapping_file.c_str(), "/vendor/etc/selinux/nonplat_sepolicy.cil", "-o", compiled_sepolicy,