mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
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
This commit is contained in:
@@ -18306,10 +18306,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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user