diff options
author | David Eklov <david.eklov@gmail.com> | 2016-07-17 22:47:20 -0500 |
---|---|---|
committer | David Eklov <david.eklov@gmail.com> | 2016-07-17 22:50:15 -0500 |
commit | d202ca2fd7c1be75ea9a4f122a3cc18fabde16e8 (patch) | |
tree | 9283ac10b610b726adcf4d1248123da958c01a58 /sway | |
parent | 2530f952c9cec4150f5ee44bdd764123ae09bd30 (diff) | |
download | sway-d202ca2fd7c1be75ea9a4f122a3cc18fabde16e8.tar.xz |
Do not crash when handling the command 'move position'
Sway expected 'move position' to be 'move position mouse'. If mouse is not
present in the command, Sway crashes.
Diffstat (limited to 'sway')
-rw-r--r-- | sway/commands.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c index 73f245c1..1dec9889 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -1115,7 +1115,14 @@ static struct cmd_results *cmd_move(int argc, char **argv) { focused = swayc_active_workspace(); } set_focused_container(focused); - } else if (strcasecmp(argv[0], "position") == 0 && strcasecmp(argv[1], "mouse") == 0) { + } else if (strcasecmp(argv[0], "position") == 0) { + if ((error = checkarg(argc, "move workspace", EXPECTED_EQUAL_TO, 2))) { + return error; + } + if (strcasecmp(argv[1], "mouse")) { + return cmd_results_new(CMD_INVALID, "move", expected_syntax); + } + if (view->is_floating) { swayc_t *output = swayc_parent_by_type(view, C_OUTPUT); struct wlc_geometry g; |