summaryrefslogtreecommitdiff
path: root/channels/sip
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2015-11-24 12:44:53 -0600
committerRichard Mudgett <rmudgett@digium.com>2015-12-01 13:54:04 -0600
commitfa2072903238ddb8dbba7d75ccf70edb36581f36 (patch)
treecbf6fd65a2b2cd3bd9ba5f78ad7f71ba3f1547eb /channels/sip
parente5723d27763b85b66972a275cd90f4a592bcc21f (diff)
Audit improper usage of scheduler exposed by 5c713fdf18f.
channels/chan_iax2.c: * Initialize struct chan_iax2_pvt scheduler ids earlier because of iax2_destroy_helper(). channels/chan_sip.c: channels/sip/config_parser.c: * Fix initialization of scheduler id struct members. Some off nominal paths had 0 as a scheduler id to be destroyed when it was never started. chan_skinny.c: * Fix some scheduler id comparisons that excluded the valid 0 id. channel.c: * Fix channel initialization of the video stream scheduler id. pbx_dundi.c: * Fix channel initialization of the packet retransmission scheduler id. ASTERISK-25476 Change-Id: I07a3449f728f671d326a22fcbd071f150ba2e8c8
Diffstat (limited to 'channels/sip')
-rw-r--r--channels/sip/config_parser.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/channels/sip/config_parser.c b/channels/sip/config_parser.c
index a3964b047..56d04b260 100644
--- a/channels/sip/config_parser.c
+++ b/channels/sip/config_parser.c
@@ -79,13 +79,17 @@ int sip_parse_register_line(struct sip_registry *reg, int default_expiry, const
AST_APP_ARG(port);
);
- if (!value) {
+ if (!reg) {
return -1;
}
- if (!reg) {
+ reg->expire = -1;
+ reg->timeout = -1;
+
+ if (!value) {
return -1;
}
+
ast_copy_string(buf, value, sizeof(buf));
/*! register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]
@@ -261,7 +265,6 @@ int sip_parse_register_line(struct sip_registry *reg, int default_expiry, const
ast_string_field_set(reg, regdomain, ast_strip_quoted(S_OR(user2.domain, ""), "\"", "\""));
reg->transport = transport;
- reg->timeout = reg->expire = -1;
reg->portno = portnum;
reg->regdomainport = domainport;
reg->callid_valid = FALSE;