Can't call evtimer_pending on uninitialized events, call

evtimer_initialized first. Reported by Vladimir Lomov, fix from Thomas
Adam slightly modified by me.
This commit is contained in:
Nicholas Marriott 2012-09-03 06:26:48 +00:00
parent 84a4007b06
commit 473911fb73

View File

@ -533,6 +533,7 @@ partial_key:
* timer has expired, give up waiting and send the escape. * timer has expired, give up waiting and send the escape.
*/ */
if ((tty->flags & TTY_ESCAPE) && if ((tty->flags & TTY_ESCAPE) &&
evtimer_initialized(&tty->key_timer) &&
!evtimer_pending(&tty->key_timer, NULL)) { !evtimer_pending(&tty->key_timer, NULL)) {
evbuffer_drain(tty->event->input, 1); evbuffer_drain(tty->event->input, 1);
key = '\033'; key = '\033';
@ -543,7 +544,8 @@ partial_key:
start_timer: start_timer:
/* If already waiting for timer, do nothing. */ /* If already waiting for timer, do nothing. */
if (evtimer_pending(&tty->key_timer, NULL)) if (evtimer_initialized(&tty->key_timer) &&
evtimer_pending(&tty->key_timer, NULL))
return (0); return (0);
/* Start the timer and wait for expiry or more data. */ /* Start the timer and wait for expiry or more data. */