GNU bug report logs -
#21394
25.0.50; Segfault when displaying unprintable character in echo area while frames are being created
Previous Next
Reported by: Pip Cet <pipcet <at> gmail.com>
Date: Tue, 1 Sep 2015 16:45:02 UTC
Severity: normal
Tags: patch
Found in version 25.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #26 received at 21394 <at> debbugs.gnu.org (full text, mbox):
> Date: Tue, 1 Sep 2015 20:19:58 +0000
> From: Pip Cet <pipcet <at> gmail.com>
> Cc: 21394 <at> debbugs.gnu.org
>
> That caches a face id in last_escape_glyph_merged_face_id, which is cleared
> only in redisplay_internal(). But message() doesn't call redisplay_internal(),
> it calls try_window() directly (xdisp.c:10687) (and resize_window before that,
> which blows up).
I think you are right, thanks.
> This patch appears, so far, to run without a segfault
Can you please verify that when the (unmodified) code does segfault,
the offending face ID is indeed stored in
last_escape_glyph_merged_face_id? I'd like to be sure we have really
found the source of that face ID.
Also, I think that those 4 lines of code should be in a function, and
that function should also be called from free_realized_faces, where we
set c->used to zero. I couldn't convince myself that
free_realized_faces could never be called while redisplay runs (and
even if now it isn't, I'd like us to be more future-proof in this
respect).
This bug report was last modified 9 years and 320 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.