GNU bug report logs - #30182
27.0.50; Crash when doing mouse-over on modeline

Previous Next

Package: emacs;

Reported by: Sujith <m.sujith <at> gmail.com>

Date: Sat, 20 Jan 2018 06:27:02 UTC

Severity: normal

Found in version 27.0.50

Done: martin rudalics <rudalics <at> gmx.at>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Sujith <m.sujith <at> gmail.com>
Cc: rudalics <at> gmx.at, 30182 <at> debbugs.gnu.org
Subject: bug#30182: Update
Date: Tue, 23 Jan 2018 19:25:42 +0200
> From: Sujith <m.sujith <at> gmail.com>
> Cc: rudalics <at> gmx.at, 30182 <at> debbugs.gnu.org
> Date: Tue, 23 Jan 2018 22:37:04 +0530
> 
> (gdb) pp elt
> [nil 23143 27373 214334 300 savehist-autosave nil nil 582000]
> 
> (gdb) pp val
> ([nil 23143 27086 157598 nil undo-auto--boundary-timer nil nil 797000] [nil 23143 27086 356582 0.5 blink-cursor-timer-function nil nil 148000] [nil 23143 27086 428672 nil #[(buffer) "!
> qÉ)‡" [buffer w3m-modeline-title-timer buffer-live-p nil] 2] (#<buffer *w3m*>) nil 416000] [nil 23143 27092 0 60 display-time-event-handler nil nil 0])
> 
> (gdb) pp prev
> ([nil 23143 27092 0 60 display-time-event-handler nil nil 0])

So here's the thing: timer-list has 5 elements, but concat thinks
there are only 4 elements, so it starts with a 4-element list, and
then there's no place there to put the 5th element, which happens to
be the savehist-autosave timer.

So the question now becomes: how come this code:

  result_len_byte = 0;
  result_len = 0;
  some_multibyte = 0;
  for (argnum = 0; argnum < nargs; argnum++)
    {
      EMACS_INT len;
      this = args[argnum];
      len = XFASTINT (Flength (this));
      ...
    }
  result_len += len;

(nargs = 1 in this case) produces result_len of 4, when timer-list has
actually 5 elements?  Martin, any ideas?




This bug report was last modified 7 years and 108 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.