From de20deaa8a1f0efae160781ad2c01648bf80a2f8 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 26 Feb 2021 20:59:06 +1300 Subject: [PATCH] Detect when NtQuerySymbolicLinkObject is called without an EmuHandle --- src/core/kernel/exports/EmuKrnlNt.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/kernel/exports/EmuKrnlNt.cpp b/src/core/kernel/exports/EmuKrnlNt.cpp index 5ab4cbba1..efbebd61a 100644 --- a/src/core/kernel/exports/EmuKrnlNt.cpp +++ b/src/core/kernel/exports/EmuKrnlNt.cpp @@ -1371,11 +1371,14 @@ XBSYSAPI EXPORTNUM(215) xbox::ntstatus_xt NTAPI xbox::NtQuerySymbolicLinkObject LOG_FUNC_ARG_OUT(ReturnedLength) LOG_FUNC_END; - NTSTATUS ret = 0; + NTSTATUS ret = STATUS_INVALID_HANDLE; EmuNtSymbolicLinkObject* symbolicLinkObject = NULL; - // Check that we actually got an EmuHandle : - ret = STATUS_INVALID_HANDLE; + // We expect LinkHandle to always be an EmuHandle + if (!EmuHandle::IsEmuHandle(LinkHandle)) { + LOG_UNIMPLEMENTED(); + return ret; + } auto iEmuHandle = (EmuHandle*)LinkHandle; // Retrieve the NtSymbolicLinkObject and populate the output arguments :