From 76a36aa58815253253cb70b6d68b0966920b5451 Mon Sep 17 00:00:00 2001 From: Dmitry Tsarevich Date: Sat, 15 Nov 2025 04:11:32 +0300 Subject: [PATCH] vgui_controls: Prevent use-after-free when LoadControlSettings for BuildGroup Catched by ASAN when use VGUI Build Mode in HL2:DM with opened FIND SERVERS & CREATE SERVER. --- src/vgui2/vgui_controls/BuildGroup.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vgui2/vgui_controls/BuildGroup.cpp b/src/vgui2/vgui_controls/BuildGroup.cpp index b362bcf05c3..7f776dc72a7 100644 --- a/src/vgui2/vgui_controls/BuildGroup.cpp +++ b/src/vgui2/vgui_controls/BuildGroup.cpp @@ -987,7 +987,8 @@ void BuildGroup::LoadControlSettings(const char *controlResourceName, const char m_pResourceName = new char[strlen(controlResourceName) + 1]; strcpy(m_pResourceName, controlResourceName); - if (pathID) + // set path id only if it is not the same to prevent use-after-free + if (pathID && pathID != m_pResourcePathID) { delete [] m_pResourcePathID; m_pResourcePathID = new char[strlen(pathID) + 1];