Re: core dumping inside Performer
John Rohlf (jrohlf++at++tubes)
Wed, 16 Nov 94 11:41:47 PST
>
> Hi
>
> I tried to link my Performer application with malloc_db.o from the Dev. Toolbox
> (in search of some malloc problems).
> Suprisingly, Performer crashed inside pfAllocChanData, upon tying to
> free (NULL). It doesn't do so when I link without malloc_db.o .
>
> This is the 'where' output of dbx :
>
> > 0 db_unlink(ptr = 0xffffffec) [0x43786c]
> 1 free(vptr = (nil)) ["malloc_db.c":503, 0x43780c]
> 2 operator delete(void*)(d = (nil)) ["../../../lib/libpf/pfProcess.C":3442,
> 0x4dd69c]
> 3 pfChannel::newPassThruData(long)(this = 0x20f76a0, size = 8)
> ["../../../lib/libpf/pfChannel.C":1291, 0x4f0ae8]
> 4 pfAllocChanData(_chan = 0x20f76a0, size = 8)
> ["../../../lib/libpf/cChannel.C":226, 0x4cd440]
> 5 nova_new_channel(pipe = 0x1f75c10, type = 2)
> ["/tmp_mnt/usr/login/otw/nova/nova_interface.c":3875, 0x454fdc]
>
> What it seems to say is that newPassThruData does delete of a nil pointer,
> which in turn calls free with that nil pointer.
This looks like a bug in malloc_db since the malloc man page says:
Undefined results will occur if the space assigned by malloc is overrun
or if some random number is handed to free. It is always permitted to
pass NULL to free.
This archive was generated by hypermail 2.0b2
on Mon Aug 10 1998 - 17:50:40 PDT