Skip to content
Snippets Groups Projects
Commit ac8988c9 authored by Mike Bradeen's avatar Mike Bradeen Committed by Michael Bradeen
Browse files

sched: fix and test a double deref on delete of an executing call back

sched: Avoid a double deref when AST_SCHED_DEL_UNREF is called on an
executing call-back. This is done by adding a new variable 'rescheduled'
to the struct sched which is set in ast_sched_runq and checked in
ast_sched_del_nonrunning. ast_sched_del_nonrunning is a replacement for
now deprecated ast_sched_del which returns a new possible value -2
if called on an executing call-back with rescheduled set. ast_sched_del
is modified to call ast_sched_del_nonrunning to maintain existing code.
AST_SCHED_DEL_UNREF is also updated to look for the -2 in which case it
will not throw a warning or invoke refcall.
test_sched: Add a new unit test sched_test_freebird that will check the
reference count in the resolved scenario.

ASTERISK-29698

Change-Id: Icfb16b3acbc29cf5b4cef74183f7531caaefe21d
parent 6e8bbe4b
No related branches found
No related tags found
1 merge request!48asterisk uplift to 18.11.2
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment