X11: Fix memory leak when using window embedding

This commit is contained in:
Haoyu Qiu
2025-06-28 22:50:51 +08:00
parent e1b4101e34
commit 9051b546c6

View File

@@ -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;
}
}