Merge "libprocessgroup: Check validity of uid and pid arguments" am: c1798def91 am: f5d65bf11c

Original change: https://android-review.googlesource.com/c/platform/system/core/+/2475605

Change-Id: I0e5cd03f8e462f142723d2bb090a8f9be0ace9f8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot 2023-03-30 17:13:44 +00:00 committed by Automerger Merge Worker
commit 92824d9d04

View file

@ -446,14 +446,9 @@ static int DoKillProcessGroupOnce(const char* cgroup, uid_t uid, int initialPid,
static int KillProcessGroup(uid_t uid, int initialPid, int signal, int retries,
int* max_processes) {
if (uid < 0) {
LOG(ERROR) << __func__ << ": invalid UID " << uid;
return -1;
}
if (initialPid <= 0) {
LOG(ERROR) << __func__ << ": invalid PID " << initialPid;
return -1;
}
CHECK_GE(uid, 0);
CHECK_GT(initialPid, 0);
std::string hierarchy_root_path;
if (CgroupsAvailable()) {
CgroupGetControllerPath(CGROUPV2_CONTROLLER_NAME, &hierarchy_root_path);
@ -590,7 +585,8 @@ static int createProcessGroupInternal(uid_t uid, int initialPid, std::string cgr
}
int createProcessGroup(uid_t uid, int initialPid, bool memControl) {
std::string cgroup;
CHECK_GE(uid, 0);
CHECK_GT(initialPid, 0);
if (memControl && !UsePerAppMemcg()) {
PLOG(ERROR) << "service memory controls are used without per-process memory cgroup support";
@ -608,6 +604,7 @@ int createProcessGroup(uid_t uid, int initialPid, bool memControl) {
}
}
std::string cgroup;
CgroupGetControllerPath(CGROUPV2_CONTROLLER_NAME, &cgroup);
return createProcessGroupInternal(uid, initialPid, cgroup, true);
}