ACK: [PATCH] hotkey: only process reads of hotkey events that are at least the correct length
ivanhu
ivan.hu at canonical.com
Fri May 29 06:48:27 UTC 2015
On 2015年05月14日 19:33, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Coverity Scan found an issue where the comparison to the event structure was
> incorrect when reads were too short in size.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/hotkey/hotkey/hotkey.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/src/hotkey/hotkey/hotkey.c b/src/hotkey/hotkey/hotkey.c
> index 6e40df1..28d3ef1 100644
> --- a/src/hotkey/hotkey/hotkey.c
> +++ b/src/hotkey/hotkey/hotkey.c
> @@ -90,20 +90,20 @@ static int hotkey_test(fwts_framework *fw, char *dev, fwts_list *hotkeys)
> }
>
> while (do_test) {
> - switch (read(fd, &ev, sizeof(ev))) {
> - case -1:
> - case 0:
> + ssize_t ret = read(fd, &ev, sizeof(ev));
> +
> + if (ret < (ssize_t)sizeof(ev)) {
> do_test = 0;
> break;
> - default:
> - if ((ev.type == EV_KEY) &&
> - (ev.code == KEY_ESC) &&
> - (ev.value == 0))
> - do_test = 0;
> - else
> - hotkey_check_key(fw, &ev, hotkeys);
> - break;
> }
> +
> + if ((ev.type == EV_KEY) &&
> + (ev.code == KEY_ESC) &&
> + (ev.value == 0))
> + do_test = 0;
> + else
> + hotkey_check_key(fw, &ev, hotkeys);
> + break;
> }
>
> if (ioctl(fd, EVIOCGRAB, (void*)0)) { /* Release */
Acked-by: Ivan Hu<ivan.hu at canonical.com>
More information about the fwts-devel
mailing list