Merge "Fix run-as for non-owner users"
diff --git a/run-as/run-as.cpp b/run-as/run-as.cpp
index d005ecf..ac470d4 100644
--- a/run-as/run-as.cpp
+++ b/run-as/run-as.cpp
@@ -167,6 +167,15 @@
   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);
   }