From cb504d7b0c85f69a9f2152427eca4b9b18fbeefe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 24 Apr 2022 17:27:55 +0200 Subject: [PATCH] [WIN32SS] Fix crash if releasing a PDEVOBJ before switching to graphic mode - do not try to remove ppdev from gppdevList if gppdevList is NULL - do not check (and maybe change) gpmdev, as it should be done only in MDEVOBJ_vDestroy --- win32ss/gdi/eng/pdevobj.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/win32ss/gdi/eng/pdevobj.c b/win32ss/gdi/eng/pdevobj.c index e1f9da54c69..77dce0b0bfa 100644 --- a/win32ss/gdi/eng/pdevobj.c +++ b/win32ss/gdi/eng/pdevobj.c @@ -139,7 +139,7 @@ PDEVOBJ_vRelease( { gppdevList = ppdev->ppdevNext; } - else + else if (gppdevList) { PPDEVOBJ ppdevCurrent = gppdevList; BOOL found = FALSE; @@ -154,10 +154,6 @@ PDEVOBJ_vRelease( ppdevCurrent->ppdevNext = ppdev->ppdevNext; } - /* Is this the primary one ? */ - if (ppdev == gpmdev->ppdevGlobal) - gpmdev->ppdevGlobal = NULL; - /* Unload display driver */ EngUnloadImage(ppdev->pldev);