# New Ticket Created by  Nick Glencross 
# Please include the string:  [perl #34476]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=34476 >


---
osname= linux
osvers= 2.4.21-14.elsmp
arch=   i386-linux-thread-multi
cc=     gcc 3.4.2 20041006 (Red Hat 3.4.2-5)
---
Flags:
    category=core
    severity=medium
    ack=no
---
Splicing an intlist seems to segfault.

e.g.

.sub main
        new P0, .IntList
        P0[0] = 100
        P0[1] = 200
        new P1, .IntList
        P1[0] = 300
        splice P0, P1, 0, 0
        end
.end


The backtrace is 

#0  0x080d5cf2 in list_splice (interpreter=0x98e8008, list=0x9ae7754,
    value=0x9aaa3f0, offset=0, count=0) at src/list.c:1997
#1  0x081e6145 in Parrot_IntList_splice (interpreter=0x98e8008, pmc=0x9aaa408,
    value=0x9aaa3f0, offset=0, count=0) at classes/intlist.c:191
#2  0x0810ba33 in Parrot_splice_p_p_ic_ic (cur_opcode=0x9b210c8,
    interpreter=0x98e8008) at experimental.ops:184
#3  0x0816816c in runops_slow_core (interpreter=0x98e8008, pc=0x9b210c8)
    at src/runops_cores.c:147
#4  0x0816661d in runops_int (interpreter=0x98e8008, offset=0)
    at src/interpreter.c:742
#5  0x08167477 in runops (interpreter=0x98e8008, offs=0) at src/inter_run.c:81
#6  0x080d7459 in Parrot_runcode (interpreter=0x98e8008, argc=1,
    argv=0xbffa8c58) at src/embed.c:768
#7  0x080d7292 in Parrot_runcode (interpreter=0x98e8008, argc=1,
    argv=0xbffa8c58) at src/embed.c:700
#8  0x0809d8d7 in main (argc=1, argv=0xbffa8c58) at imcc/main.c:603

The offending line is the first in list_splice in list.c:

    List *value_list = value ? (List *)PMC_data(value): NULL;

and seems to be the PMC_data operation on 'value'.

There seems to be a test 't/pmc/perlarray.t' which does a splice using
'list_spice', but it seems to work ok.


---
Summary of my parrot 0.1.2 configuration:
  configdate='Wed Mar 16 23:42:02 2005'
  Platform:
    osname=linux, archname=i386-linux-thread-multi
    jitcapable=1, jitarchname=i386-linux,
    jitosname=LINUX, jitcpuarch=i386
    execcapable=1
    perl=/usr/bin/perl
  Compiler:
    cc='gcc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS 
-DDEBUGGING  -pipe -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
  Linker and Libraries:
    ld='gcc', ldflags=' -L/usr/local/lib',
    cc_ldflags='',
    libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp'
  Dynamic Linking:
    share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC',
    load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC'
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=1 byteorder=1234, 
    nv=double, numvalsize=8, doublesize=8

---
Environment:
    HOME    LANG    LANGUAGE    LD_LIBRARY_PATH    LOGDIR    PATH    SHELL

Reply via email to