[SR-Users] problem unreferencing dialog in dialog module

Daniel-Constantin Mierla miconda at gmail.com
Fri Mar 4 22:58:11 CET 2011


Hello,

just committed a safety check for this case. If anyone can give it some 
tests, then we can backport.

I will analyze to see why it got in such case, but anyhow it is better 
and safer to detect bogus dereferences to dialogs and not crash.

Thanks,
Daniel

On 3/3/11 11:34 AM, Timo Reimann wrote:
> Argh:
>
>
> On 03.03.2011 11:11, Timo Reimann wrote:
>> What I can tell though is that the crash happens because too much dialog
>> reference counter decrementing takes place. Although I have no clue why,
>                                                         ^^^^^^^^^^^^^^^^^
>
> ...the crash happens,
>
>> I believe the implementation of unref_dlg_unsafe() (a macro) could be
>> somewhat more robust by not unlinking and destroying a dialog when the
>> counter drops below zero. That is, instead of running the following block
>>
>> if ((_dlg)->ref<=0) { \
>>          unlink_unsafe_dlg( _d_entry, _dlg);\
>>          LM_DBG("ref<=0 for dialog %p\n",_dlg);\
>>          destroy_dlg(_dlg);\
>> }\
>
>> for _dlg->ref<= 0, I see no reason to change the compare operator to ==.
> I see no reason *not* to change compare operator to ==. That is, I want
> the block to execute iff the reference counter is found to be zero.
>
>
> --Timo
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://www.asipto.com




More information about the sr-users mailing list