Subject: bug#22526: 25.0.90; Crash starting gnus

From: Andy Moreton <[email-masked]>
Date: Fri, 12 Feb 2016 13:34:37 +0000

On Thu 11 Feb 2016, Eli Zaretskii wrote:

>> From: Andy Moreton <[email-masked]>
>> Date: Thu, 11 Feb 2016 21:20:06 +0000
>> 
>> > Anyway, is that GDB session still running?
>> 
>> Sadly not.
>
> Is there some reason that you couldn't leave it running once you get
> the crash?

Pilot error :-) I have managed to reproduce the crash again, and kept
the gdb session running.

#11 0x000000040017202c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411
        tem = {
          i = 0xd510
        }
        real_gap_loc = 0xf035
        real_gap_loc_byte = 0xf035
        old_gap_size = 0x7d0
        current_size = 0xf804
#12 0x00000004001723e4 in make_gap (nbytes_added=0x830) at ../../src/insdel.c:481
No locals.
#13 0x00000004001733a4 in insert_from_string_1 (string=..., pos=0x0, pos_byte=0x0, nchars=0x1000, nbytes=0x1000, inherit=0x0, before_markers=0x1) at ../../src/insdel.c:916
        outgoing_nbytes = 0x1000
        intervals = 0xbf3150
#14 0x00000004001731f3 in insert_from_string_before_markers (string=..., pos=0x0, pos_byte=0x0, length=0x1000, length_byte=0x1000, inherit=0x0) at ../../src/insdel.c:882
        opoint = 0xf035
#15 0x000000040025011d in Finternal_default_process_filter (proc=..., text=...) at ../../src/process.c:5527
        old_read_only = {
          i = 0x0
        }
        old_begv = 0x1
        old_zv = 0xf035
        old_begv_byte = 0x1
        old_zv_byte = 0xf035
        before = 0xf035
        before_byte = 0xf035
        opoint_byte = 0xf035
        b = 0xbf3260
        p = 0xa65cc18
        opoint = 0xf035

(gdb) frame 11
#11 0x000000040017202c in make_gap_larger (nbytes_added=0x1000) at ../../src/insdel.c:411
411	  *(Z_ADDR) = 0;
(gdb) p Z_ADDR
$1 = (unsigned char *) 0x200804 <error: Cannot access memory at address 0x200804>
(gdb) p *(Z_ADDR)
Cannot access memory at address 0x200804

(gdb) p/x *(Z_ADDR - 0x804)
Cannot access memory at address 0x200000
(gdb) p/x *(Z_ADDR - 0x805)
$16 = 0x0

(gdb) p/x (Z_ADDR - 0x805) - BEG_ADDR
$18 = 0xffff