commit 76bcc142cfd8aa8b004daaf733c01e99f2faab81
parent 37eb2584dae93508bf417db653f83861f450b590
Author: blinxen <h-k-81@hotmail.com>
Date: Mon, 13 Oct 2025 21:47:17 +0200
Limit recursion depth when trying to find items under dbus menu
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git 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) {