aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-05-17 14:47:17 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-05-17 14:47:17 +0000
commit9c0879fa5c2924fd1764f308f90c79fcb16a54df (patch)
tree1ddd11ecd6b3e5a78949556b44cdbe5a4d040e48 /channels/chan_sip.c
parentadb5e74f1b5d4ea6a196422062ae1eb392c845a8 (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-xchannels/chan_sip.c5
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)