]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid division by zero in get_narrowed_* functions
authorEli Zaretskii <eliz@gnu.org>
Wed, 22 Feb 2023 12:55:05 +0000 (14:55 +0200)
committerEli Zaretskii <eliz@gnu.org>
Wed, 22 Feb 2023 12:55:05 +0000 (14:55 +0200)
* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at
least 1 as the value.  (Bug#61704)

src/xdisp.c

index f5d54974b133b1692256b05140426be114a1d85e..b64f1d35cbc91e3c7a98040bb847f6b219e34895 100644 (file)
@@ -3498,18 +3498,18 @@ init_iterator (struct it *it, struct window *w,
 static int
 get_narrowed_width (struct window *w)
 {
-  int fact;
   /* In a character-only terminal, only one font size is used, so we
      can use a smaller factor.  */
-  fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
-  return fact * window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+  int fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
+  int width = window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+  return fact * max (1, width);
 }
 
 static int
 get_narrowed_len (struct window *w)
 {
-  return get_narrowed_width (w) *
-    window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+  int height = window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS);
+  return get_narrowed_width (w) * max (1, height);
 }
 
 ptrdiff_t