[asterisk-dev] Pre-requesites of ast_cel_report_event breached in handle_request_refer (non-permitted lock)

Dave WOOLLEY dave.woolley at bts.co.uk
Wed Aug 27 05:45:06 CDT 2014


Looking at the branch version of 1.8, the following code in handle_request_refer appears to blatantly breach the pre-conditions for ast_cel_report_event, namely that no locks be held.

               /* XXX - what to we put in CEL 'extra' for attended transfers to external systems? NULL for now */
               ast_channel_lock(current.chan1);
               ast_cel_report_event(current.chan1, p->refer->attendedtransfer? AST_CEL_ATTENDEDTRANSFER : AST_CEL_BLINDTRANSFER, NULL, p->refer->attendedtransfer ? NULL : p->refer->refer_to, current.chan2);
               ast_channel_unlock(current.chan1);



It looks like a lock has existed since the initial inclusion of CEL in trunk, as the unlock follows the CEL call there, but the lock moved closer to the call in a later version.

--
David Woolley
BTS Holdings Plc
Tel: +44 (0)20 8401 9000 Fax: +44 (0)20 8401 9100
http://www.bts.co.uk<http://www.bts.co.uk/>


BTS Holdings PLC - Registered office: BTS House, Manor Road, Wallington, SM6 0DD - Registered in England: 1517630
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140827/49b54e80/attachment-0001.html>


More information about the asterisk-dev mailing list