diff --git a/lib/isc/timer.c b/lib/isc/timer.c index 714ae591ac0c2ae34a2703184142913b825115c8..2baa9e6ea10e277cfe836b4d7e676c2b7c150d65 100644 --- a/lib/isc/timer.c +++ b/lib/isc/timer.c @@ -474,8 +474,10 @@ isc__timer_create(isc_timermgr_t *manager0, isc_timertype_t type, result = schedule(timer, &now, true); else result = ISC_R_SUCCESS; - if (result == ISC_R_SUCCESS) + if (result == ISC_R_SUCCESS) { + *timerp = (isc_timer_t *)timer; APPEND(manager->timers, timer, link); + } UNLOCK(&manager->lock); @@ -488,8 +490,6 @@ isc__timer_create(isc_timermgr_t *manager0, isc_timertype_t type, return (result); } - *timerp = (isc_timer_t *)timer; - return (ISC_R_SUCCESS); }