From 47234b37da5f7ae539ee138d91ab7ec1241948f5 Mon Sep 17 00:00:00 2001 From: blinxen Date: Mon, 13 Oct 2025 21:47:17 +0200 Subject: [PATCH] Limit recursion depth when trying to find items under dbus menu --- swaybar/tray/dbusmenu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/swaybar/tray/dbusmenu.c b/swaybar/tray/dbusmenu.c index 6ed0d5ed5..70e18e133 100644 --- a/swaybar/tray/dbusmenu.c +++ b/swaybar/tray/dbusmenu.c @@ -267,7 +267,8 @@ static const struct xdg_popup_listener xdg_popup_listener = { static struct swaybar_dbusmenu_menu_item * find_item_under_menu(struct swaybar_dbusmenu_menu *menu, int item_id) { - if (!menu->items) { + static int recursion_depth = 0; + if (!menu->items || recursion_depth > 10) { return NULL; } @@ -277,6 +278,7 @@ find_item_under_menu(struct swaybar_dbusmenu_menu *menu, int item_id) { return item; } if (item->submenu && item->submenu->item_id != 0) { + recursion_depth++; struct swaybar_dbusmenu_menu_item *found_item = find_item_under_menu(item->submenu, item_id); if (found_item) {