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/branches/1.8@321392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2011-05-27 23:45:41 +00:00
parent 8323ef12bf
commit 8e6b43e331

View File

@@ -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)