bug in perl 5.10 on 8.0?

Giorgos Keramidas keramida at ceid.upatras.gr
Sat May 9 22:00:31 UTC 2009

I've recently enabled kern.sugid_coredump=1 to debug a problem in a
problem of my own and noticed this too:

  $ ls -ld /*core
  -rw-------  1 root  wheel  - 11612160 May  9 12:13 /perl5.10.0.core

  # gdb /usr/local/bin/perl5 /perl*core
  (gdb) bt
  #0  0x283136a7 in kill () at kill.S:2
  #1  0x282243f7 in _raise (sig=6) at /usr/src/lib/libthr/thread/thr_sig.c:185
  #2  0x2831222a in abort () at /usr/src/lib/libc/stdlib/abort.c:65
  #3  0x282f8756 in __assert (func=0xbfbfeb24 "\006", file=0x3 <Address 0x3 out of bounds>, line=0,
      failedexpr=0x2831bcb0 "(run->regs_mask[elm] & (1U << bit)) == 0") at /usr/src/lib/libc/gen/assert.c:54
  #4  0x28299c4a in arena_dalloc_small (arena=0x8049c40, chunk=0x28400000, ptr=Variable "ptr" is not available.
  ) at /usr/src/lib/libc/stdlib/malloc.c:2543
  #5  0x2829a020 in idalloc (ptr=0x284d7ec0) at /usr/src/lib/libc/stdlib/malloc.c:3871
  #6  0x2829a757 in free (ptr=0x284d7ec0) at /usr/src/lib/libc/stdlib/malloc.c:5454
  #7  0x2830cefb in __clean_env (freeVars=true) at /usr/src/lib/libc/stdlib/getenv.c:236
  #8  0x2824dde0 in ?? () from /lib/libc.so.7
  #9  0x28325800 in ?? () from /lib/libc.so.7
  #10 0x280782d8 in ?? () from /libexec/ld-elf.so.1
  #11 0xbfbfecf8 in ?? ()
  #12 0x28316dcc in _fini () from /lib/libc.so.7
  #13 0x28088380 in ?? ()
  #14 0x280782d8 in ?? () from /libexec/ld-elf.so.1
  #15 0xbfbfecf8 in ?? ()
  #16 0x2804ec6f in objlist_call_fini (list=Variable "list" is not available.
  ) at /usr/src/libexec/rtld-elf/rtld.c:1620
  Previous frame inner to this frame (corrupt stack?)

  (gdb) x/100b 0x284d7ec0
  0x284d7ec0:     0x44    0x42    0x55    0x53    0x5f    0x53    0x54    0x41
  0x284d7ec8:     0x52    0x54    0x45    0x52    0x5f    0x42    0x55    0x53
  0x284d7ed0:     0x5f    0x54    0x59    0x50    0x45    0x3d    0x73    0x79
  0x284d7ed8:     0x73    0x74    0x65    0x6d    0x00    0x70    0x72    0x69
  0x284d7ee0:     0xc0    0x7e    0x4d    0x28    0x80    0x70    0xe6    0x28
  0x284d7ee8:     0x00    0x00    0x00    0x00    0x75    0x73    0x65    0x72
  0x284d7ef0:     0x5b    0x31    0x5d    0x5c    0x6e    0x22    0x3b    0x0a
  0x284d7ef8:     0x20    0x20    0x20    0x20    0x20    0x20    0x70    0x72
  0x284d7f00:     0x00    0x00    0x00    0x00    0xc0    0x58    0x1d    0x28
  0x284d7f08:     0x00    0x00    0x63    0x00    0x0c    0x00    0x00    0x00
  0x284d7f10:     0x00    0x00    0x00    0x00    0x70    0xee    0xe6    0x28
  0x284d7f18:     0x00    0x00    0x00    0x00    0x00    0x00    0x00    0x00
  0x284d7f20:     0x0c    0x00    0x00    0x00
  Current language:  auto; currently asm

  (gdb) x/s 0x284d7ec0
  0x284d7ec0:      "DBUS_STARTER_BUS_TYPE=system"

Has anyone else seen something similar?  Is this an already known bug in
Perl or an artifact of the way __clean_env() works in 8.0-CURRENT?

More information about the freebsd-current mailing list