From: Kruti Pendharkar Date: Fri, 11 Jul 2025 12:48:15 +0000 (-0700) Subject: Fix the vmtools user process crash caused by use-after-free X-Git-Tag: stable-13.1.0~143 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ce1da35446b0409763fd84f2eaefeac675e15092;p=thirdparty%2Fopen-vm-tools.git Fix the vmtools user process crash caused by use-after-free A previous change introduced a bug where a freed pointer was not set to nullptr, potentially causing a crash in the vmtoolsd user process. --- diff --git a/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp b/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp index 14e6f8e6a..ac71b9d5f 100644 --- a/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp +++ b/open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp @@ -333,7 +333,7 @@ CopyPasteDnDX11::RegisterCP() CopyPaste_SetVersion(version); } else { delete m_copyPasteUI; - m_copyPasteUI = NULL; + m_copyPasteUI = nullptr; } } return wrapper->IsCPRegistered(); @@ -374,7 +374,7 @@ CopyPasteDnDX11::RegisterDnD() } } else { delete m_dndUI; - m_dndUI = NULL; + m_dndUI = nullptr; } } } @@ -397,6 +397,7 @@ CopyPasteDnDX11::UnregisterCP() CopyPasteDnDWrapper *wrapper = CopyPasteDnDWrapper::GetInstance(); if (wrapper->IsCPRegistered()) { delete m_copyPasteUI; + m_copyPasteUI = nullptr; wrapper->SetCPIsRegistered(FALSE); wrapper->SetCPVersion(-1); } @@ -417,6 +418,7 @@ CopyPasteDnDX11::UnregisterDnD() #ifdef VMTOOLS_USE_LEGACY_GTK delete m_dndUI; + m_dndUI = nullptr; #endif wrapper->SetDnDIsRegistered(false);