Przeglądaj źródła

tm: lock replies before restoring flags for onreply_route

(cherry picked from commit ac2e49b41840e0b05750b20c367a6c380caa983a)
(cherry picked from commit 3c686813c88ad575e7085351297f4d0ae4f2cfe1)
Daniel-Constantin Mierla 11 lat temu
rodzic
commit
9e67bd5b74
1 zmienionych plików z 5 dodań i 3 usunięć
  1. 5 3
      modules/tm/t_reply.c

+ 5 - 3
modules/tm/t_reply.c

@@ -2219,6 +2219,11 @@ int reply_received( struct sip_msg  *p_msg )
 	/* processing of on_reply block */
 	if (onreply_route) {
 		set_route_type(TM_ONREPLY_ROUTE);
+
+		/* lock onreply_route, for safe avp usage */
+		LOCK_REPLIES( t );
+		replies_locked=1;
+
 		/* transfer transaction flag to message context */
 		if (t->uas.request) p_msg->flags=t->uas.request->flags;
 		/* set the as avp_list the one from transaction */
@@ -2236,9 +2241,6 @@ int reply_received( struct sip_msg  *p_msg )
 		/* Pre- and post-script callbacks have already
 		 * been executed by the core. (Miklos)
 		 */
-		/* lock onreply_route, for safe avp usage */
-		LOCK_REPLIES( t );
-		replies_locked=1;
 		run_top_route(onreply_rt.rlist[onreply_route], p_msg, &ctx);
 		/* transfer current message context back to t */
 		if (t->uas.request) t->uas.request->flags=p_msg->flags;