Hey folks,
By accident I found a (reproducible) crash in PJSUA.
So I found this because I was using the wrong PJSUA call for cancelling
an outgoing call.
The scenario is this:
- Initiate call with pjsua_call_make_call()
- Before the call is picked up; try to cancel the call with
pjsua_call_answer2() (and providing msg_data).
In this case, PJSUA always crashes with the following backtrace:
#0 0x0000000000571de0 in pj_list_insert_after (pos=0x7fffe0005608,
node=0x7fffe00088a8) at ../include/pj/list_i.h:33
#1 0x0000000000571e18 in pj_list_insert_before (pos=0x83fc28
<pjsua_var+68200>, node=0x7fffe00088a8) at ../include/pj/list_i.h:40
#2 0x00000000004581f7 in pj_list_push_back (list=0x83fc28
<pjsua_var+68200>, node=0x7fffe00088a8) at ../../pjlib/include/pj/list.h:128
#3 0x000000000045dad8 in pjsua_call_answer2 (call_id=1, opt=0x0,
code=603, reason=0x0, msg_data=0x7ffff0854870) at
../src/pjsua-lib/pjsua_call.c:2638
#4 0x000000000042abaf in siss::UserAgent::answer (this=0x8c61c0,
cid=..., status_code=status_code@entry=603, reason=...,
additional_header=std::vector of length 0, capacity 0,
additional_payload=std::vector of length 0, capacity 0)
at useragent.cpp:1071
#5 0x000000000042ae18 in siss::UserAgent::hangup (this=<optimized out>,
cid=..., status_code=status_code@entry=603, reason=...) at
useragent.cpp:1093
Now before you get angry: Yes, I realize I need to use
pjsua_call_hangup() instead (and already confirmed it works that way);
But I would have expected the function to return with the appropiate
error code and not cause a hard crash.
Best Regards,
Andreas Wehrmann
_______________________________________________
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org