https://git.reactos.org/?p=reactos.git;a=commitdiff;h=757bed81b1c96bffa195b1237d6d91125a1650bf
commit 757bed81b1c96bffa195b1237d6d91125a1650bf Author: Katayama Hirofumi MZ <[email protected]> AuthorDate: Sun Jan 2 01:40:11 2022 +0900 Commit: GitHub <[email protected]> CommitDate: Sun Jan 2 01:40:11 2022 +0900 [NTUSER] Fix KVM and VBox tests (#4235) KVM and VBox tests was failing since d5deacd - Check NULL at UserFreeInputContext and UserDestroyInputContext functions. - Move UserMarkObjectDestroy into the UserDestroyInputContext function. CORE-11700 --- win32ss/user/ntuser/ime.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/win32ss/user/ntuser/ime.c b/win32ss/user/ntuser/ime.c index c172f28a70c..81c4e330243 100644 --- a/win32ss/user/ntuser/ime.c +++ b/win32ss/user/ntuser/ime.c @@ -224,10 +224,14 @@ AllocInputContextObject(PDESKTOP pDesk, VOID UserFreeInputContext(PVOID Object) { PIMC pIMC = Object, pImc0; - PTHREADINFO pti = pIMC->head.pti; + PTHREADINFO pti; - UserMarkObjectDestroy(Object); + if (!pIMC) + return; + pti = pIMC->head.pti; + + /* Find the IMC in the list and remove it */ for (pImc0 = pti->spDefaultImc; pImc0; pImc0 = pImc0->pImcNext) { if (pImc0->pImcNext == pIMC) @@ -237,7 +241,7 @@ VOID UserFreeInputContext(PVOID Object) } } - UserHeapFree(Object); + UserHeapFree(pIMC); pti->ppi->UserHandleCount--; IntDereferenceThreadInfo(pti); @@ -246,7 +250,11 @@ VOID UserFreeInputContext(PVOID Object) BOOLEAN UserDestroyInputContext(PVOID Object) { PIMC pIMC = Object; - UserDeleteObject(pIMC->head.h, TYPE_INPUTCONTEXT); + if (pIMC) + { + UserMarkObjectDestroy(pIMC); + UserDeleteObject(pIMC->head.h, TYPE_INPUTCONTEXT); + } return TRUE; }
