]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Fix the vmtools user process crash caused by use-after-free
authorKruti Pendharkar <kp025370@broadcom.com>
Fri, 11 Jul 2025 12:48:15 +0000 (05:48 -0700)
committerKruti Pendharkar <kp025370@broadcom.com>
Fri, 11 Jul 2025 12:48:15 +0000 (05:48 -0700)
A previous change introduced a bug where a freed pointer was not set to
nullptr, potentially causing a crash in the vmtoolsd user process.

open-vm-tools/services/plugins/dndcp/copyPasteDnDX11.cpp

index 14e6f8e6a1c45e00d92cdaf0a7d86173e34bcbd2..ac71b9d5fc7bc59ad30cedabbb0b698bc01580cf 100644 (file)
@@ -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);