diff options
author | shua <itis@isthisa.email> | 2022-11-09 01:01:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-09 00:01:50 -0600 |
commit | f1639ba9d5c807792fe5d0628caa1faf3316ca44 (patch) | |
tree | 3800b6d010f86f0efa44c6136595cb1ce612421a /client.h | |
parent | 8bd344257501b9293126348bf956beb8c9ddcfae (diff) |
check null in toplevel_from_popup
managed to SEGFAULT the server by trying to create a popup
without setting a parent first.
Not sure if this is dwl or wlroots issue, so also opened a ticket upstream: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3811
Diffstat (limited to 'client.h')
-rw-r--r-- | client.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -304,7 +304,9 @@ toplevel_from_popup(struct wlr_xdg_popup *popup) while (1) { switch (surface->role) { case WLR_XDG_SURFACE_ROLE_POPUP: - if (wlr_surface_is_layer_surface(surface->popup->parent)) + if (!surface->popup->parent) + return NULL; + else if (wlr_surface_is_layer_surface(surface->popup->parent)) return wlr_layer_surface_v1_from_wlr_surface(surface->popup->parent)->data; else if (!wlr_surface_is_xdg_surface(surface->popup->parent)) return NULL; |