bind/2776-Fix-crash-caused-by-race-condition-in-timer-creation.patch

23 lines
605 B
Diff
Raw Normal View History

2019-12-28 09:41:34 +08:00
--- a/lib/isc/timer.c 2018-09-04 00:04:41.000000000 -0400
+++ b/lib/isc/timer_1.c 2019-04-17 23:40:41.930000000 -0400
@@ -472,8 +472,10 @@ isc__timer_create(isc_timermgr_t *manage
result = schedule(timer, &now, ISC_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);
@@ -486,7 +488,6 @@ isc__timer_create(isc_timermgr_t *manage
return (result);
}
- *timerp = (isc_timer_t *)timer;
return (ISC_R_SUCCESS);
}