From eaecf7db14cff793e46c432edf68fef58b43373b Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Sun, 2 Jun 2024 18:42:54 +0200 Subject: core: fix a few asan reported issues and a coredump on exit (#6285) * xwayland: add destructor to CXWM and free resource the wl_event_resource was running upon destruction of the compositor causing a null pointer segfault in onX11Event so ensure the event is removed upon destruction, also free the memory allocated by xcb_errors_context_new and finally call xcb_disconnect on the connection to free the fd and its memory. * hyprctl: dont leak the fd on destruction add a destructor and properly free the fd on destruction * eventloop: add destructor and free event source properly free the wl_event_source upon destruction. --- src/xwayland/XWM.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/xwayland/XWM.cpp') diff --git a/src/xwayland/XWM.cpp b/src/xwayland/XWM.cpp index b0f8d6aa..5dfd4839 100644 --- a/src/xwayland/XWM.cpp +++ b/src/xwayland/XWM.cpp @@ -837,6 +837,17 @@ CXWM::CXWM() { xcb_flush(connection); } +CXWM::~CXWM() { + if (errors) + xcb_errors_context_free(errors); + + if (connection) + xcb_disconnect(connection); + + if (eventSource) + wl_event_source_remove(eventSource); +} + void CXWM::setActiveWindow(xcb_window_t window) { xcb_change_property(connection, XCB_PROP_MODE_REPLACE, screen->root, HYPRATOMS["_NET_ACTIVE_WINDOW"], HYPRATOMS["WINDOW"], 32, 1, &window); } -- cgit v1.2.3