From 9d8943868c0f1ab35c3df38978df1fec379f986a Mon Sep 17 00:00:00 2001 From: Richard Mudgett <rmudgett@digium.com> Date: Fri, 27 May 2011 23:46:07 +0000 Subject: [PATCH] Merged revisions 321392 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r321392 | rmudgett | 2011-05-27 18:45:41 -0500 (Fri, 27 May 2011) | 12 lines Crash when using hagi and no servers are available. When none of the servers returned by the SRV querey respond, asterisk crashes. The problem is that if the loop over all the SRV entries finishes then the srv_context has already been cleaned up. * Make ast_srv_cleanup() check to see if the context is already cleaned up. (closes issue #19256) Reported by: byronclark ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@321393 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/srv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/srv.c b/main/srv.c index f4e0ec39aa..5a0c7effbf 100644 --- a/main/srv.c +++ b/main/srv.c @@ -249,7 +249,11 @@ void ast_srv_cleanup(struct srv_context **context) const char *host; unsigned short port; - while (!(ast_srv_lookup(context, NULL, &host, &port))); + if (*context) { + /* We have a context to clean up. */ + while (!(ast_srv_lookup(context, NULL, &host, &port))) { + } + } } int ast_get_srv(struct ast_channel *chan, char *host, int hostlen, int *port, const char *service) -- GitLab