From 053fe7652bc6445a234892e567f076642c468703 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Tue, 9 Oct 2012 18:44:34 +0100 Subject: [PATCH] keyboard: Avoid access beyond end off buffer If the for loop does not match on a button it will fall through and try and dereference into the array using the terminating value of the loop. This terminating value of the loop is the dimension of the array and thus beyond its bounds. Cc: Jan Arne Petersen Signed-off-by: Rob Bradford --- clients/keyboard.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clients/keyboard.c b/clients/keyboard.c index 8820a22a..19eb0346 100644 --- a/clients/keyboard.c +++ b/clients/keyboard.c @@ -313,12 +313,12 @@ button_handler(struct widget *widget, col = x / key_width + row * columns; for (i = 0; i < sizeof(keys) / sizeof(*keys); ++i) { col -= keys[i].width; - if (col < 0) + if (col < 0) { + keyboard_handle_key(keyboard, &keys[i]); break; + } } - keyboard_handle_key(keyboard, &keys[i]); - widget_schedule_redraw(widget); }