From ee39ef0b93d31763d05e54ba99801e3f1a254c0d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 10 Sep 2016 19:17:42 +0200 Subject: patch 7.4.2361 Problem: Checking for last_timer_id to overflow is not reliable. (Ozaki Kiichi) Solution: Check for the number not going up. --- src/ex_cmds2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/ex_cmds2.c') diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 8df67536c5..b8d8dca9e0 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1143,10 +1143,11 @@ free_timer(timer_T *timer) create_timer(long msec, int repeat) { timer_T *timer = (timer_T *)alloc_clear(sizeof(timer_T)); + long prev_id = last_timer_id; if (timer == NULL) return NULL; - if (++last_timer_id < 0) + if (++last_timer_id <= prev_id) /* Overflow! Might cause duplicates... */ last_timer_id = 0; timer->tr_id = last_timer_id; -- cgit v1.2.3