mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-22 20:31:14 +00:00
sm: lighten abort restrictions on mitm handle acquisition (closes #1528)
This commit is contained in:
parent
dcdf46f576
commit
8fea8d9b2e
1 changed files with 5 additions and 5 deletions
|
@ -367,7 +367,7 @@ namespace ams::sm::impl {
|
||||||
{
|
{
|
||||||
/* TODO: Convert mitm internal messaging to use tipc? */
|
/* TODO: Convert mitm internal messaging to use tipc? */
|
||||||
::Service srv { .session = service_info->mitm_query_h };
|
::Service srv { .session = service_info->mitm_query_h };
|
||||||
R_TRY(::serviceDispatchInOut(std::addressof(srv), 65000, client_info, should_mitm));
|
R_ABORT_UNLESS(::serviceDispatchInOut(std::addressof(srv), 65000, client_info, should_mitm));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we shouldn't mitm, give normal session. */
|
/* If we shouldn't mitm, give normal session. */
|
||||||
|
@ -383,8 +383,9 @@ namespace ams::sm::impl {
|
||||||
auto fwd_guard = SCOPE_GUARD { R_ABORT_UNLESS(svc::CloseHandle(fwd_hnd)); };
|
auto fwd_guard = SCOPE_GUARD { R_ABORT_UNLESS(svc::CloseHandle(fwd_hnd)); };
|
||||||
|
|
||||||
/* Get the mitm handle. */
|
/* Get the mitm handle. */
|
||||||
|
/* This should be guaranteed to succeed, since we got a forward handle. */
|
||||||
svc::Handle hnd;
|
svc::Handle hnd;
|
||||||
R_TRY(svc::ConnectToPort(std::addressof(hnd), service_info->mitm_port_h));
|
R_ABORT_UNLESS(svc::ConnectToPort(std::addressof(hnd), service_info->mitm_port_h));
|
||||||
|
|
||||||
/* We got both handles, so we no longer need to clean up the forward handle. */
|
/* We got both handles, so we no longer need to clean up the forward handle. */
|
||||||
fwd_guard.Cancel();
|
fwd_guard.Cancel();
|
||||||
|
@ -410,9 +411,8 @@ namespace ams::sm::impl {
|
||||||
MitmProcessInfo client_info;
|
MitmProcessInfo client_info;
|
||||||
GetMitmProcessInfo(std::addressof(client_info), process_id);
|
GetMitmProcessInfo(std::addressof(client_info), process_id);
|
||||||
if (!IsMitmDisallowed(client_info.program_id)) {
|
if (!IsMitmDisallowed(client_info.program_id)) {
|
||||||
/* We're mitm'd. Assert, because mitm service host dead is an error state. */
|
/* Get a mitm service handle. */
|
||||||
R_ABORT_UNLESS(GetMitmServiceHandleImpl(out, service_info, client_info));
|
return GetMitmServiceHandleImpl(out, service_info, client_info);
|
||||||
return ResultSuccess();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue