I've got something really strange happening:

#0  0xa7c24629 in free () from /lib/tls/i686/cmov/libc.so.6
#1  0xa647be93 in __sip_destroy (p=0x5040, lockowner=1) at chan_sip.c:2195
#2  0xa647c2df in sip_destroy (p=0x90a7400) at chan_sip.c:2368
#3  0xa647c40a in sip_poke_noanswer (data=0x808f2f8) at chan_sip.c:12074
#4  0xa7e8a919 in opbx_sched_runq (con=0x80730d8) at sched.c:459
#5  0xa7e8a9bd in timer_func (t=0x8073100, user_data=0x80730d8) at
sched.c:115
#6  0xa7ef3991 in sighandler (sigval={sival_int = -1479583740, sival_ptr
= 0xa7cf5804}) at timer.c:43
#7  0xa7e497bc in mq_timedreceive () from /lib/tls/i686/cmov/librt.so.1


It looks like sip_destroy is calling __sip_destroy with an entirely
different pointer than it is called with. How is this possible?
sip_destroy looks like this:

static void sip_destroy(struct sip_pvt *p)
{
    opbx_mutex_lock(&iflock);
    __sip_destroy(p, 1);
    opbx_mutex_unlock(&iflock);
}


I can't see any way for that to happen.



Does anyone have any ideas?

_______________________________________________
Openpbx-dev mailing list
[email protected]
http://lists.openpbx.org/mailman/listinfo/openpbx-dev

Reply via email to