diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-20 18:14:30 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-20 18:14:36 +0000 |
| commit | 13d985489788fa5349b3457d6eb1c19bad8f37e9 (patch) | |
| tree | 4c7672aed6f9377102ed6abe4cca77eab2e016c4 /src | |
| parent | cd73dda16e0e2e3008c87115b34b7c6e054ff5a8 (diff) | |
xdgpopup: fix UAF because of an invalid listener connection
destroy should be connected to popup::destroy, not popup::surface::destroy...
ref #4751
Diffstat (limited to 'src')
| -rw-r--r-- | src/events/Popups.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/events/Popups.cpp b/src/events/Popups.cpp index bcdb1808..ae95bc5e 100644 --- a/src/events/Popups.cpp +++ b/src/events/Popups.cpp @@ -55,7 +55,7 @@ void addPopupGlobalCoords(void* pPopup, int* x, int* y) { void createNewPopup(wlr_xdg_popup* popup, SXDGPopup* pHyprPopup) { pHyprPopup->popup = popup; - pHyprPopup->hyprListener_destroyPopupXDG.initCallback(&popup->base->events.destroy, &Events::listener_destroyPopupXDG, pHyprPopup, "HyprPopup"); + pHyprPopup->hyprListener_destroyPopupXDG.initCallback(&popup->events.destroy, &Events::listener_destroyPopupXDG, pHyprPopup, "HyprPopup"); pHyprPopup->hyprListener_mapPopupXDG.initCallback(&popup->base->surface->events.map, &Events::listener_mapPopupXDG, pHyprPopup, "HyprPopup"); pHyprPopup->hyprListener_unmapPopupXDG.initCallback(&popup->base->surface->events.unmap, &Events::listener_unmapPopupXDG, pHyprPopup, "HyprPopup"); pHyprPopup->hyprListener_newPopupFromPopupXDG.initCallback(&popup->base->events.new_popup, &Events::listener_newPopupFromPopupXDG, pHyprPopup, "HyprPopup"); |
