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

Commit 1aee56d7 authored by Ryan Mitchell's avatar Ryan Mitchell Committed by Automerger Merge Worker
Browse files

Merge "Always delete old idmap in createIdmap" into sc-dev am: 651112fb

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4b0b40e1f4175979ff10998a6b88a8dd9b1ac78a
parents fdaddd3b 651112fb
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -161,6 +161,12 @@ Status Idmap2Service::createIdmap(const std::string& target_path, const std::str
                                    idmap_path.c_str(), uid));
  }

  // idmap files are mapped with mmap in libandroidfw. Deleting and recreating the idmap guarantees
  // that existing memory maps will continue to be valid and unaffected. The file must be deleted
  // before attempting to create the idmap, so that if idmap  creation fails, the overlay will no
  // longer be usable.
  unlink(idmap_path.c_str());

  const auto target = GetTargetContainer(target_path);
  if (!target) {
    return error("failed to load target '%s'" + target_path);
@@ -177,10 +183,6 @@ Status Idmap2Service::createIdmap(const std::string& target_path, const std::str
    return error(idmap.GetErrorMessage());
  }

  // idmap files are mapped with mmap in libandroidfw. Deleting and recreating the idmap guarantees
  // that existing memory maps will continue to be valid and unaffected.
  unlink(idmap_path.c_str());

  umask(kIdmapFilePermissionMask);
  std::ofstream fout(idmap_path);
  if (fout.fail()) {