From c9296b23d1574332ccbc83f3fc7ba492cfc34cfe Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Thu, 2 Mar 2017 21:27:00 -0600 Subject: core: Cleanup ast_get_hint() usage. * manager.c:manager_state_cb() Fix potential use of uninitialized hint[] if a hint does not exist for the requested extension. Ran into this when developing a testsuite test. The AMI event ExtensionStatus came out with the hint header value containing garbage. The AMI event PresenceStatus also had the same issue. * manager.c:action_extensionstate() no need to completely initialize the hint[]. Only initialize the first element. * pbx.c:ast_add_hint() Remove unnecessary assignment. * chan_sip.c: Eliminate an unneeded hint[] local variable. We only care about the return value of ast_get_hint() there. Change-Id: Ia9a8786f01f93f1f917200f0a50bead0319af97b --- channels/chan_sip.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'channels/chan_sip.c') diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 3e4dafb1b..8241b67ed 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -18364,10 +18364,11 @@ static enum sip_get_dest_result get_destination(struct sip_pvt *p, struct sip_re /* If this is a subscription we actually just need to see if a hint exists for the extension */ if (req->method == SIP_SUBSCRIBE) { - char hint[AST_MAX_EXTENSION]; int which = 0; - if (ast_get_hint(hint, sizeof(hint), NULL, 0, NULL, p->context, uri) || - (ast_get_hint(hint, sizeof(hint), NULL, 0, NULL, p->context, decoded_uri) && (which = 1))) { + + if (ast_get_hint(NULL, 0, NULL, 0, NULL, p->context, uri) + || (ast_get_hint(NULL, 0, NULL, 0, NULL, p->context, decoded_uri) + && (which = 1))) { if (!oreq) { ast_string_field_set(p, exten, which ? decoded_uri : uri); } -- cgit v1.2.3