Explorar o código

hle: kernel: k_port: Use AcceptSession to ensure SessionList state is correct.

- Fixes a use-after-free, work-around until we fixup session/port management.
bunnei %!s(int64=5) %!d(string=hai) anos
pai
achega
e33ffdc555
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      src/core/hle/kernel/k_port.cpp

+ 1 - 1
src/core/hle/kernel/k_port.cpp

@@ -56,8 +56,8 @@ ResultCode KPort::EnqueueSession(KServerSession* session) {
 
     R_UNLESS(state == State::Normal, ResultPortClosed);
 
-    server.GetSessionRequestHandler()->ClientConnected(session);
     server.EnqueueSession(session);
+    server.GetSessionRequestHandler()->ClientConnected(server.AcceptSession());
 
     return RESULT_SUCCESS;
 }