Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e6dc9ba authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Handle invalid shared GIDs.

Shared GIDs are only available inside a range from 50000-59999, so
system UIDs (outside the normal app range) don't have a valid GID to
use.  The best we can do is skip the profile setup in those cases.

Test: builds
Bug: 27948817
Change-Id: I8c38a0e3631eafd07e96da3e37e641b3cce195a6
parent 55e4f912
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -322,8 +322,8 @@ binder::Status InstalldNativeService::createAppData(const std::unique_ptr<std::s
            const std::string ref_profile_path = create_data_ref_profile_package_path(pkgname);
            // dex2oat/profman runs under the shared app gid and it needs to read/write reference
            // profiles.
            appid_t shared_app_gid = multiuser_get_shared_app_gid(uid);
            if (fs_prepare_dir_strict(
            int shared_app_gid = multiuser_get_shared_app_gid(uid);
            if ((shared_app_gid != -1) && fs_prepare_dir_strict(
                    ref_profile_path.c_str(), 0700, shared_app_gid, shared_app_gid) != 0) {
                return error("Failed to prepare " + ref_profile_path);
            }