From 0c5411c7ca22fabd7113e429af1043e2b268941a Mon Sep 17 00:00:00 2001 From: Nicholas Sauer Date: Fri, 2 Nov 2018 17:04:52 -0700 Subject: [PATCH] Fix run-as for non-owner users bug: 118501138 bug: 80126373 Test: cts-tradefed run cts-dev -a arm64-v8a -m CtsJvmtiRunTest1908HostTestCases Change-Id: Iee25afbffc6990b46f508bfe8a9953bd2a35d118 --- run-as/run-as.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/run-as/run-as.cpp b/run-as/run-as.cpp index d005ecf3b..ac470d45b 100644 --- a/run-as/run-as.cpp +++ b/run-as/run-as.cpp @@ -167,6 +167,15 @@ int main(int argc, char* argv[]) { if (!packagelist_parse(packagelist_parse_callback, &info)) { error(1, errno, "packagelist_parse failed"); } + + // Handle a multi-user data path + if (userId > 0) { + free(info.data_dir); + if (asprintf(&info.data_dir, "/data/user/%d/%s", userId, pkgname) == -1) { + error(1, errno, "asprintf failed"); + } + } + if (info.uid == 0) { error(1, 0, "unknown package: %s", pkgname); }