From cee432c9d8fdb70971e3f70f4899706dfb55ea95 Mon Sep 17 00:00:00 2001 From: Richard Mudgett <rmudgett@digium.com> Date: Tue, 8 Nov 2011 18:02:51 +0000 Subject: [PATCH] Fixed reference to incorrect variable if unknown host configured crash. * Fixed a LOG_ERROR message referencing the config variable list v that had previously been processed and became NULL. * Added error return value set that was missing in an ast_append_ha() error return path. (closes issue ASTERISK-18743) Reported by: Michele Patches: issueA18743-fix_dynamic_exclude_static_bad_host_log.patch (license #5674) patch uploaded by Walter Doekes Tested by: Michele ........ Merged revisions 343851 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 343852 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@343853 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 8 ++++---- main/acl.c | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 7e3104389c..c6475c5180 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -28119,11 +28119,11 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str ast_string_field_set(peer, tohost, srvlookup); if (global_dynamic_exclude_static) { - int err = 0; + int ha_error = 0; sip_cfg.contact_ha = ast_append_ha("deny", ast_sockaddr_stringify_addr(&peer->addr), - sip_cfg.contact_ha, &err); - if (err) { - ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value); + sip_cfg.contact_ha, &ha_error); + if (ha_error) { + ast_log(LOG_ERROR, "Bad or unresolved host/IP entry in configuration for peer %s, cannot add to contact ACL\n", peer->name); } } } else if (peer->dnsmgr && !peer->host_dynamic) { diff --git a/main/acl.c b/main/acl.c index f3795c95a0..69713bbd8d 100644 --- a/main/acl.c +++ b/main/acl.c @@ -408,6 +408,9 @@ struct ast_ha *ast_append_ha(const char *sense, const char *stuff, struct ast_ha } if (!(ha = ast_calloc(1, sizeof(*ha)))) { + if (error) { + *error = 1; + } return ret; } -- GitLab