Subject: bug#61704: 29.0.60; Crash in get_narrowed_begv

From: Po Lu <[email-masked]>
Date: Wed, 22 Feb 2023 21:16:31 +0800

Eli Zaretskii <[email-masked]> writes:

>> How can len possibly be 0 at that point?  It is (in short) 

Because the pixel width of W is less than its frame's column width.
The division performed window_body_width is truncating, i.e:

  24 / 25 = 0

and I suspect the actual width being divded at that point is less than
w->pixel_width, since that window had fringes.

>> window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS) * window_body_height 
>> (w, WINDOW_BODY_IN_CANONICAL_CHARS).  We could add a condition in 
>> get_narrowed_len to return 1 when the result is 0, but it could be a bug 
>> somewhere else (can a window body have a zero width and/or height?), in 
>> which case it would be better to fix the bug there.
>
> I agree that we should understand how this happened (and asked a
> similar question), but I installed a defensive protection anyway.  It
> cannot do any harm.

I did say that this happened while resizing the window.  It was being
displayed in an ediff-created frame.