[prev in list] [next in list] [prev in thread] [next in thread] 

List:       semsdev
Subject:    [Semsdev] [patch] lockup in the trans_layer
From:       Szokovacs Robert <robert.szokovacs () gamma ! co ! uk>
Date:       2012-08-30 16:26:32
Message-ID: 503F9438.5070902 () gamma ! co ! uk
[Download RAW message or body]

Hi,

I have found a lockup in _trans_layer::send_reply(), if an already 
closed transaction was replied, the function returns without releasing 
the lock. This was probably introduced when the checking was moved from 
update_uas_reply() to send_reply(). I could trigger it when handling the 
CANCEL message: my application replied it with 200, but since 1.5.0, the 
SEMS core also replies it. The attached patch fixes the issue.

br

Szo

["trans_layer.patch" (text/x-patch)]

diff --git a/core/sip/trans_layer.cpp b/core/sip/trans_layer.cpp
index e106ca3..fc649e8 100644
--- a/core/sip/trans_layer.cpp
+++ b/core/sip/trans_layer.cpp
@@ -132,6 +132,7 @@ int _trans_layer::send_reply(trans_ticket* tt,
     }
 
     if(t->reply_status >= 200){
+	bucket->unlock();
 	ERROR("Transaction has already been closed with a final reply\n");
 	return -1;
     }


_______________________________________________
Semsdev mailing list
Semsdev@lists.iptel.org
http://lists.iptel.org/mailman/listinfo/semsdev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic