summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2010-09-21 15:45:46 +0000
committerRussell Bryant <russell@russellbryant.com>2010-09-21 15:45:46 +0000
commit4a356afb7defb1c6e8f1e1f307947785bb759093 (patch)
tree5bf60365e0c39234fb9820c4095dd1ed8ba4aced /main
parent9b4cfb0d28156f5aaca019a4d1cd97bcd6cf5820 (diff)
Merged revisions 287895 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r287895 | russell | 2010-09-21 10:43:33 -0500 (Tue, 21 Sep 2010) | 10 lines Don't use ast_strdupa() from within the arguments to a function. (closes issue #17902) Reported by: afried Patches: issue_17902.rev1.txt uploaded by russell (license 2) Tested by: russell Review: https://reviewboard.asterisk.org/r/927/ ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@287896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/acl.c18
-rw-r--r--main/dnsmgr.c19
2 files changed, 26 insertions, 11 deletions
diff --git a/main/acl.c b/main/acl.c
index 278647be8..fa028dc66 100644
--- a/main/acl.c
+++ b/main/acl.c
@@ -488,7 +488,12 @@ struct ast_ha *ast_append_ha(const char *sense, const char *stuff, struct ast_ha
ret = ha;
}
- ast_debug(1, "%s/%s sense %d appended to acl for peer\n", ast_strdupa(ast_sockaddr_stringify(&ha->addr)), ast_strdupa(ast_sockaddr_stringify(&ha->netmask)), ha->sense);
+ {
+ const char *addr = ast_strdupa(ast_sockaddr_stringify(&ha->addr));
+ const char *mask = ast_strdupa(ast_sockaddr_stringify(&ha->netmask));
+
+ ast_debug(1, "%s/%s sense %d appended to acl for peer\n", addr, mask, ha->sense);
+ }
return ret;
}
@@ -701,9 +706,14 @@ int ast_ouraddrfor(const struct ast_sockaddr *them, struct ast_sockaddr *us)
return -1;
}
close(s);
- ast_debug(3, "For destination '%s', our source address is '%s'.\n",
- ast_strdupa(ast_sockaddr_stringify_addr(them)),
- ast_strdupa(ast_sockaddr_stringify_addr(us)));
+
+ {
+ const char *them_addr = ast_strdupa(ast_sockaddr_stringify_addr(them));
+ const char *us_addr = ast_strdupa(ast_sockaddr_stringify_addr(us));
+
+ ast_debug(3, "For destination '%s', our source address is '%s'.\n",
+ them_addr, us_addr);
+ }
ast_sockaddr_set_port(us, port);
diff --git a/main/dnsmgr.c b/main/dnsmgr.c
index 7036708c7..7fb5f8803 100644
--- a/main/dnsmgr.c
+++ b/main/dnsmgr.c
@@ -151,22 +151,26 @@ int ast_dnsmgr_lookup(const char *name, struct ast_sockaddr *result, struct ast_
*/
static int dnsmgr_refresh(struct ast_dnsmgr_entry *entry, int verbose)
{
- struct ast_sockaddr tmp;
+ struct ast_sockaddr tmp = { .len = 0, };
int changed = 0;
ast_mutex_lock(&entry->lock);
- if (verbose)
- ast_verb(3, "refreshing '%s'\n", entry->name);
- memset(&tmp, 0, sizeof(tmp));
+ if (verbose) {
+ ast_verb(3, "refreshing '%s'\n", entry->name);
+ }
if (!ast_get_ip_or_srv(&tmp, entry->name, entry->service)) {
- if (!ast_sockaddr_port(&tmp))
+ if (!ast_sockaddr_port(&tmp)) {
ast_sockaddr_set_port(&tmp, ast_sockaddr_port(entry->result));
+ }
+
if (ast_sockaddr_cmp(&tmp, entry->result)) {
+ const char *old_addr = ast_strdupa(ast_sockaddr_stringify(entry->result));
+ const char *new_addr = ast_strdupa(ast_sockaddr_stringify(&tmp));
+
ast_log(LOG_NOTICE, "dnssrv: host '%s' changed from %s to %s\n",
- entry->name, ast_strdupa(ast_sockaddr_stringify(entry->result)),
- ast_strdupa(ast_sockaddr_stringify(&tmp)));
+ entry->name, old_addr, new_addr);
ast_sockaddr_copy(entry->result, &tmp);
changed = entry->changed = 1;
@@ -174,6 +178,7 @@ static int dnsmgr_refresh(struct ast_dnsmgr_entry *entry, int verbose)
}
ast_mutex_unlock(&entry->lock);
+
return changed;
}