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.
next prev parent 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.