mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-26 06:26:41 +00:00
Audit improper usage of scheduler exposed by 5c713fdf18.
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
This commit is contained in:
@@ -5548,12 +5548,12 @@ static void setsubstate(struct skinny_subchannel *sub, int state)
|
||||
|
||||
skinny_locksub(sub);
|
||||
|
||||
if (sub->dialer_sched) {
|
||||
if (-1 < sub->dialer_sched) {
|
||||
skinny_sched_del(sub->dialer_sched, sub);
|
||||
sub->dialer_sched = -1;
|
||||
}
|
||||
|
||||
if (state != SUBSTATE_RINGIN && sub->aa_sched) {
|
||||
if (state != SUBSTATE_RINGIN && -1 < sub->aa_sched) {
|
||||
skinny_sched_del(sub->aa_sched, sub);
|
||||
sub->aa_sched = -1;
|
||||
sub->aa_beep = 0;
|
||||
@@ -6238,7 +6238,7 @@ static int handle_keypad_button_message(struct skinny_req *req, struct skinnyses
|
||||
}
|
||||
|
||||
if ((sub->owner && ast_channel_state(sub->owner) < AST_STATE_UP)) {
|
||||
if (sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
|
||||
if (-1 < sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
|
||||
SKINNY_DEBUG(DEBUG_SUB, 3, "Sub %u - Got a digit and not timed out, so try dialing\n", sub->callid);
|
||||
sub->dialer_sched = -1;
|
||||
len = strlen(sub->exten);
|
||||
@@ -7075,7 +7075,7 @@ static int handle_soft_key_event_message(struct skinny_req *req, struct skinnyse
|
||||
case SOFTKEY_BKSPC:
|
||||
SKINNY_DEBUG(DEBUG_PACKET, 3, "Received SOFTKEY_BKSPC from %s, inst %d, callref %d\n",
|
||||
d->name, instance, callreference);
|
||||
if (sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
|
||||
if (-1 < sub->dialer_sched && !skinny_sched_del(sub->dialer_sched, sub)) {
|
||||
size_t len;
|
||||
sub->dialer_sched = -1;
|
||||
len = strlen(sub->exten);
|
||||
|
||||
Reference in New Issue
Block a user