mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
kernel: sysctl: do not return info about dead processes
This commit is contained in:
parent
ff8d81e059
commit
0da531a58e
|
|
@ -195,6 +195,23 @@ SysResult kern_sysctl(Thread *thread, ptr<sint> name, uint namelen,
|
|||
}
|
||||
}
|
||||
|
||||
if (namelen >= 3) {
|
||||
if (name[0] == kern && name[1] == proc && name[2] == 1) {
|
||||
ORBIS_LOG_ERROR("KERN_PROC_PROC 2");
|
||||
|
||||
if (namelen >= 4) {
|
||||
auto process = g_context.findProcessById(name[3]);
|
||||
if (process == nullptr || process->exitStatus.has_value()) {
|
||||
return ErrorCode::SRCH;
|
||||
}
|
||||
}
|
||||
|
||||
std::memset(old, 0, sizeof(ProcInfo));
|
||||
*oldlenp = sizeof(ProcInfo);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
if (namelen == 4) {
|
||||
if (name[0] == kern && name[1] == proc && name[2] == 37) {
|
||||
if (oldlenp && old && *oldlenp == 4) {
|
||||
|
|
@ -242,14 +259,6 @@ SysResult kern_sysctl(Thread *thread, ptr<sint> name, uint namelen,
|
|||
return uwrite(oldlenp, sizeof(uint32_t));
|
||||
}
|
||||
|
||||
if (name[0] == kern && name[1] == proc && name[2] == 1) {
|
||||
ORBIS_LOG_ERROR("KERN_PROC_PROC 2");
|
||||
|
||||
std::memset(old, 0, sizeof(ProcInfo));
|
||||
*oldlenp = sizeof(ProcInfo);
|
||||
return {};
|
||||
}
|
||||
|
||||
if (name[0] == 1 && name[1] == proc && name[2] == 35) {
|
||||
// AppInfo get/set
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue