Always lock call in find_call
authorMark Spencer <markster@digium.com>
Sat, 17 May 2003 14:47:17 +0000 (14:47 +0000)
committerMark Spencer <markster@digium.com>
Sat, 17 May 2003 14:47:17 +0000 (14:47 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1037 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index ec18409..df04adb 100755 (executable)
@@ -1359,7 +1359,10 @@ static struct sip_pvt *find_call(struct sip_request *req, struct sockaddr_in *si
                p = p->next;
        }
        ast_pthread_mutex_unlock(&iflock);
                p = p->next;
        }
        ast_pthread_mutex_unlock(&iflock);
-       return sip_alloc(callid, sin, 1);
+       p = sip_alloc(callid, sin, 1);
+       if (p)
+               ast_pthread_mutex_lock(&p->lock);
+       return p;
 }
 
 static int sip_register(char *value, int lineno)
 }
 
 static int sip_register(char *value, int lineno)