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