:: commit 4d93ae7222f95164ddc9dce2fa7f96ba050ccd29

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

parents: 299ec0c530

menu: Guard tree_prefix_len against unsigned underflow with wide entries

diff --git a/common/menu.c b/common/menu.c
index 2a066fe6..1e17fe2e 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -1021,7 +1021,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