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

Commit 43cb5d2d authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Merge "Drop supplementary groups for child zygotes." into rvc-dev am:...

Merge "Merge "Drop supplementary groups for child zygotes." into rvc-dev am: 1a081317 am: 81a1af64 am: 7bf5d343" into rvc-qpr-dev-plus-aosp am: 9f464939

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11691823

Change-Id: I4806e82eb872aa55dbab8c59f7dbb67aae7e1bec
parents 7284eb47 9f464939
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -531,8 +531,16 @@ static void UnsetChldSignalHandler() {

// Calls POSIX setgroups() using the int[] object as an argument.
// A nullptr argument is tolerated.
static void SetGids(JNIEnv* env, jintArray managed_gids, fail_fn_t fail_fn) {
static void SetGids(JNIEnv* env, jintArray managed_gids, jboolean is_child_zygote,
                    fail_fn_t fail_fn) {
  if (managed_gids == nullptr) {
    if (is_child_zygote) {
      // For child zygotes like webview and app zygote, we want to clear out
      // any supplemental groups the parent zygote had.
      if (setgroups(0, NULL) == -1) {
        fail_fn(CREATE_ERROR("Failed to remove supplementary groups for child zygote"));
      }
    }
    return;
  }

@@ -1692,7 +1700,7 @@ static void SpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray gids,
    }
  }

  SetGids(env, gids, fail_fn);
  SetGids(env, gids, is_child_zygote, fail_fn);
  SetRLimits(env, rlimits, fail_fn);

  if (need_pre_initialize_native_bridge) {