We register exit clean function by atexit(), but alarm_timer is NULL here. If exit is caused between atexit() and alarm_timer assignment, real timer can't be cleaned. So move alarm_timer assignment before atexit().
Signed-off-by: Amos Kong <ak...@redhat.com> --- qemu-timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu-timer.c b/qemu-timer.c index b2d95e2..9490105 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -767,11 +767,11 @@ int init_timer_alarm(void) goto fail; } + alarm_timer = t; atexit(quit_timers); #ifdef CONFIG_POSIX pthread_atfork(NULL, NULL, reinit_timers); #endif - alarm_timer = t; return 0; fail: -- 1.8.3.1