From 9051b546c6a420a4e8f13d5136c644d4b701ab44 Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Sat, 28 Jun 2025 22:50:51 +0800 Subject: [PATCH] X11: Fix memory leak when using window embedding --- platform/linuxbsd/x11/display_server_x11.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index 6c43ad887d6..59e6964c464 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -5961,9 +5961,10 @@ Window find_window_from_process_id_internal(Display *p_display, pid_t p_process_ } for (unsigned int i = 0; i < num_children; i++) { - pid_t pid = get_window_pid(p_display, children[i]); - if (pid == p_process_id) { - return children[i]; + const Window child = children[i]; + if (get_window_pid(p_display, child) == p_process_id) { + XFree(children); + return child; } } @@ -5971,6 +5972,7 @@ Window find_window_from_process_id_internal(Display *p_display, pid_t p_process_ for (unsigned int i = 0; i < num_children; i++) { Window wnd = find_window_from_process_id_internal(p_display, p_process_id, children[i]); if (wnd != 0) { + XFree(children); return wnd; } }