:: commit f7e86944883ad70135c459d3492f2059b980b2ba

Mintsuki <mintsuki@protonmail.com> — 2026-02-08 16:30

parents: 3e8ae9f618

menu: Guard tree_prefix_len against unsigned underflow with wide entries

diff --git a/common/menu.c b/common/menu.c
index 16ee912a..a123dffa 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -1104,7 +1104,9 @@ refresh:
                              &selected_menu_entry, &max_tree_len, &max_tree_height);
 
     if (max_entries != 0) {
-        size_t tree_prefix_len = (terms[0]->cols / 2 - DIV_ROUNDUP(max_tree_len, 2)) - 2;
+        size_t half_cols = terms[0]->cols / 2;
+        size_t half_tree = DIV_ROUNDUP(max_tree_len, 2);
+        size_t tree_prefix_len = (half_cols > half_tree + 2) ? (half_cols - half_tree - 2) : 0;
         char *tree_prefix = ext_mem_alloc(tree_prefix_len + 1);
         memset(tree_prefix, ' ', tree_prefix_len);
 
tab: 248 wrap: offon