all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 5856@debbugs.gnu.org
Subject: bug#5856: 24.0.50; Crash in redisplay
Date: Fri, 09 Apr 2010 07:32:57 +0200	[thread overview]
Message-ID: <4BBEBC09.5000301@swipnet.se> (raw)
In-Reply-To: <83aatd1vm1.fsf@gnu.org>



Eli Zaretskii skrev 2010-04-08 23.29:
>> Date: Thu, 08 Apr 2010 18:13:20 +0200
>> From: Jan Djärv<jan.h.d@swipnet.se>
>> CC: 5856@debbugs.gnu.org
>>
>>> How many of these "C-x b"s caused the list of possible completions to
>>> exceed one screen line?  If the answer is "many" or "all", then could
>>> you try to figure out or recall if there was anything special about
>>> the ones that caused crashes?
>>
>> Somewhere between "many" and "all".  It is the same list of files I was
>> editing.  They mostly start on x (xsettings, xtern, xfns, xlwmenu, and so on),
>> so it probably looked pretty much the same each time.
>>
>> There was nothing special about the one that caused a crash I can think of.
>> It seems it just takes time. I just got a crash again, but this time I hadn't
>> started it from gdb, unfortunately.  Also, about 3-5 hours before it crashed
>> this time.
>
> I think I found the problem.  The invalid glyph that caused the crash
> was not supposed to be dereferenced.  Its pointer is exactly the same
> as `end', as your backtrace shows:
>
>    #0  0x000000000044d2f1 in set_cursor_from_row (w=0x1378d60, row=0x1fbf550,
>    matrix=0x18217a0, delta=0, delta_bytes=0, dy=0, dvpos=0) at
>    /home/jhd/src/emacs/fixes/src/xdisp.c:12775
> 	   glyph = 0x1fa5cd0
> 	   end = 0x1fa5cd0
>
> But `end' points beyond the last glyph in the TEXT_AREA of the glyph
> row:
>
>    struct glyph *end = glyph + row->used[TEXT_AREA];
>
> If we dereference this pointer, we could be referencing uninitialized
> memory, e.g. if there are no margins (i.e. no glyphs in the row after
> TEXT_AREA).
>
> The old code was careful not to dereference such a pointer, but when I
> rewrote set_cursor_from_row, I failed to copy those precautions.
>
> I installed a fix.  Please see if it stops these crashes, and if so,
> please close the bug report.
>

Great!  I'll run for a couple of days and if it doesn'r reappear I will close 
the bug.

Thanks,

	Jan D.






  reply	other threads:[~2010-04-09  5:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07 19:11 bug#5856: 24.0.50; Crash in redisplay Jan Djärv
2010-04-07 20:27 ` Eli Zaretskii
2010-04-08  6:16   ` Jan Djärv
2010-04-08  6:49     ` Eli Zaretskii
2010-04-08  7:26       ` Jan Djärv
2010-04-08 13:57         ` Eli Zaretskii
2010-04-08 16:13           ` Jan Djärv
2010-04-08 21:29             ` Eli Zaretskii
2010-04-09  5:32               ` Jan Djärv [this message]
2010-04-13  8:12               ` Jan Djärv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BBEBC09.5000301@swipnet.se \
    --to=jan.h.d@swipnet.se \
    --cc=5856@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.