Opened 9 years ago

Closed 9 years ago

#1149 closed defect (fixed)

Crash when holding the call after receiving SDP answer with multiple codecs (thanks Cyril GY for the report)

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.8.5
Component: pjsip Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp)

pjsua as caller, with the following scenario:

  1. --> INVITE
  2. <-- 18x (with SDP and multiple codecs/format list in m= line)
  3. --> UPDATE (pjsip sends UPDATE to lock to one codec)
  4. <-- 200/OK to UPDATE
  5. <-- 200/OK to INVITE
  6. --> ACK
  7. --> UPDATE or re-INVITE --> this will crash

The first UPDATE is sent to instruct callee to use only one particular codec. This feature was implemented in #476. The second UPDATE is to hold the call.

PJSIP crashes on the last step above when it tries to build SDP to be sent to remote host. This is because the SDP in it's cache is corrupted, presumably because it was built with the wrong flip-flop pool.

Change History (2)

comment:1 Changed 9 years ago by bennylp

  • Description modified (diff)

comment:2 Changed 9 years ago by bennylp

  • Resolution set to fixed
  • Status changed from new to closed

(In [3349]) Fixed #1149 (Crash when holding the call after receiving SDP answer with multiple codecs (thanks Cyril GY for the report)):

  • avoid using pre-created SDP, but rather use timer and create SDP right when the UPDATE/re-INVITE is about to be sent, to avoid the use of stale pool
  • also fixed bug in the old code when the lock codec feature is not activated after the call is confirmed
Note: See TracTickets for help on using tickets.