diff --git a/src/winio.c b/src/winio.c index 9fd118802483c2a5e3914b691b0fb5674a195407..69dcaa0042351c20d30a43e6ebc74c26f8666302 100644 --- a/src/winio.c +++ b/src/winio.c @@ -2765,6 +2765,7 @@ void titlebar(const char *path) statelen++; assert(space >= 0); + if (space == 0 || statelen >= space) goto the_end; @@ -2778,7 +2779,9 @@ void titlebar(const char *path) newfie = TRUE; } else prefix = _("File:"); + assert(statelen < space); + prefixlen = strnlenpt(prefix, space - statelen); /* If newfie is FALSE, we need a space after prefix. */ if (!newfie && prefixlen + statelen < space) @@ -2837,6 +2840,7 @@ void titlebar(const char *path) mvwaddnstr(topwin, 0, 0, state, COLS); else { assert(COLS - statelen - 2 >= 0); + mvwaddch(topwin, 0, COLS - statelen - 2, ' '); mvwaddnstr(topwin, 0, COLS - statelen - 1, state, statelen); }