]> git.mdlowis.com Git - proto/labwc.git/commitdiff
menu: fix UAF of server->menu_current
authortokyo4j <hrak1529@gmail.com>
Wed, 13 Nov 2024 14:57:42 +0000 (23:57 +0900)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Wed, 13 Nov 2024 15:52:19 +0000 (16:52 +0100)
This fixes segfault when exiting with a menu opened, which is a regression
from eaf11fac.

src/menu/menu.c

index c8e6c10b3748553cba96ee53bfcbd0fe180890d6..6e6199f1019a3b9f4a49bfdab8d126306638deae 100644 (file)
@@ -1140,6 +1140,10 @@ menu_free(struct menu *menu)
        /* Keep items clean on pipemenu destruction */
        nullify_item_pointing_to_this_menu(menu);
 
+       if (menu->server->menu_current == menu) {
+               menu_close_root(menu->server);
+       }
+
        struct menuitem *item, *next;
        wl_list_for_each_safe(item, next, &menu->menuitems, link) {
                item_destroy(item);