diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-05-17 14:47:17 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-05-17 14:47:17 +0000 |
commit | 9c0879fa5c2924fd1764f308f90c79fcb16a54df (patch) | |
tree | 1ddd11ecd6b3e5a78949556b44cdbe5a4d040e48 /channels/chan_sip.c | |
parent | adb5e74f1b5d4ea6a196422062ae1eb392c845a8 (diff) |
Always lock call in find_call
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1037 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-x | channels/chan_sip.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index ec18409aa..df04adb39 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -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); - 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) |