From f8bc928b2d3f5166e8d51422c07bc16ca35b0b83 Mon Sep 17 00:00:00 2001 From: Robert Kubosz Date: Fri, 13 Jul 2018 11:39:39 +0200 Subject: add error handling for scroll button out of range user will be informed if the scroll button indentifier values causes underflow or overflow. --- sway/commands/input/scroll_button.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sway/commands/input/scroll_button.c b/sway/commands/input/scroll_button.c index 6345b71b..350fcca2 100644 --- a/sway/commands/input/scroll_button.c +++ b/sway/commands/input/scroll_button.c @@ -1,5 +1,6 @@ #include #include +#include #include "sway/config.h" #include "sway/commands.h" #include "sway/input/input-manager.h" @@ -18,13 +19,19 @@ struct cmd_results *input_cmd_scroll_button(int argc, char **argv) { struct input_config *new_config = new_input_config(current_input_config->identifier); + errno = 0; char *endptr; - long scroll_button = strtol(*argv, &endptr, 10); + int scroll_button = strtol(*argv, &endptr, 10); if (endptr == *argv && scroll_button == 0) { free_input_config(new_config); return cmd_results_new(CMD_INVALID, "scroll_button", "Scroll button identifier must be an integer."); } + if (errno == ERANGE) { + free_input_config(new_config); + return cmd_results_new(CMD_INVALID, "scroll_button", + "Scroll button identifier out of range."); + } if (scroll_button < 0) { free_input_config(new_config); return cmd_results_new(CMD_INVALID, "scroll_button", -- cgit v1.2.3-54-g00ecf