From ac699196f54f4a4659b605c02cfdac6c23d7d971 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Sun, 27 Jan 2008 22:35:29 +0000 Subject: Merged revisions 100465 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r100465 | tilghman | 2008-01-27 15:59:53 -0600 (Sun, 27 Jan 2008) | 11 lines When deleting a task from the scheduler, ignoring the return value could possibly cause memory to be accessed after it is freed, which causes all sorts of random memory corruption. Instead, if a deletion fails, wait a bit and try again (noting that another thread could change our taskid value). (closes issue #11386) Reported by: flujan Patches: 20080124__bug11386.diff.txt uploaded by Corydon76 (license 14) Tested by: Corydon76, flujan, stuarth` ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@100488 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/dnsmgr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'main/dnsmgr.c') diff --git a/main/dnsmgr.c b/main/dnsmgr.c index ed2426c2e..0989f6315 100644 --- a/main/dnsmgr.c +++ b/main/dnsmgr.c @@ -239,7 +239,7 @@ static int refresh_list(const void *data) void dnsmgr_start_refresh(void) { if (refresh_sched > -1) { - ast_sched_del(sched, refresh_sched); + AST_SCHED_DEL(sched, refresh_sched); refresh_sched = ast_sched_add_variable(sched, 100, refresh_list, &master_refresh_info, 1); } } @@ -371,8 +371,7 @@ static int do_reload(int loading) was_enabled = enabled; enabled = 0; - if (refresh_sched > -1) - ast_sched_del(sched, refresh_sched); + AST_SCHED_DEL(sched, refresh_sched); if (config) { if ((enabled_value = ast_variable_retrieve(config, "general", "enable"))) { -- cgit v1.2.3