From 8c9a32bd4b3d54dd6c3c4800ea38b26391bb1ce5 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" <kpfleming@digium.com> Date: Thu, 10 Nov 2005 23:34:30 +0000 Subject: [PATCH] issue #5685 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7057 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- ChangeLog | 2 ++ channels/chan_iax2.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a54acf2447..f43d9766c7 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2005-11-10 Kevin P. Fleming <kpfleming@digium.com> + * channels/chan_iax2.c (complete_iax2_show_peer): don't return from function without releasing lock (issue #5685) + * channels/iax2-provision.c (iax_provision_reload): don't leak memory (issue #5700) * pbx/pbx_ael.c (handle_macro): don't leak memory (issue #5701) diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 806b1d2ca3..d601fc05d2 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -1970,6 +1970,7 @@ static char *complete_iax2_show_peer(char *line, char *word, int pos, int state) { int which = 0; struct iax2_peer *p; + char *res = NULL; /* 0 - iax2; 1 - show; 2 - peer; 3 - <peername> */ if(pos == 3) { @@ -1977,14 +1978,15 @@ static char *complete_iax2_show_peer(char *line, char *word, int pos, int state) for(p = peerl.peers ; p ; p = p->next) { if(!strncasecmp(p->name, word, strlen(word))) { if(++which > state) { - return strdup(p->name); + res = strdup(p->name); + break; } } } ast_mutex_unlock(&peerl.lock); } - return NULL; + return res; } static int iax2_show_stats(int fd, int argc, char *argv[]) -- GitLab