stratosphere: Fix fs.mitm bis_protect race condition.

This commit is contained in:
Michael Scire
2018-11-30 02:42:48 -08:00
parent bcdfc53d7d
commit 49ad66e478
9 changed files with 41 additions and 10 deletions

View File

@@ -180,6 +180,9 @@ bool Registration::IsInitialProcess(u64 pid) {
u64 Registration::GetInitialProcessId() {
CacheInitialProcessIdLimits();
if (IsInitialProcess(1)) {
return 1;
}
return g_initial_process_id_low;
}
@@ -219,6 +222,11 @@ bool Registration::HasService(u64 service) {
return std::any_of(g_service_list.begin(), g_service_list.end(), member_equals_fn(&Service::service_name, service));
}
bool Registration::HasMitm(u64 service) {
Registration::Service *target_service = GetService(service);
return target_service != NULL && target_service->mitm_pid != 0;
}
Result Registration::GetServiceHandle(u64 pid, u64 service, Handle *out) {
Registration::Service *target_service = GetService(service);
if (target_service == NULL || ShouldInitDefer(service) || target_service->mitm_waiting_ack) {