diff options
author | Dominique Martinet <asmadeus@codewreck.org> | 2018-06-30 22:12:10 +0900 |
---|---|---|
committer | Dominique Martinet <asmadeus@codewreck.org> | 2018-07-02 08:03:41 +0900 |
commit | 557a14a6fe79002427008a0cf831808202609ae4 (patch) | |
tree | 704bb1296047065801ab82b9376fb95801fc72b4 /sway/commands.c | |
parent | input_config: free new_input_config on error (diff) | |
download | sway-557a14a6fe79002427008a0cf831808202609ae4.tar.gz sway-557a14a6fe79002427008a0cf831808202609ae4.tar.zst sway-557a14a6fe79002427008a0cf831808202609ae4.zip |
config_commands_command: make alloc failure check more permanent
policy is accessed again later
Found through static analysis
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sway/commands.c b/sway/commands.c index 5b20857a..5b67e1ec 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -428,8 +428,7 @@ struct cmd_results *config_commands_command(char *exec) { | |||
428 | 428 | ||
429 | struct cmd_handler *handler = find_handler(cmd, NULL, 0); | 429 | struct cmd_handler *handler = find_handler(cmd, NULL, 0); |
430 | if (!handler && strcmp(cmd, "*") != 0) { | 430 | if (!handler && strcmp(cmd, "*") != 0) { |
431 | char *input = cmd ? cmd : "(empty)"; | 431 | results = cmd_results_new(CMD_INVALID, cmd, "Unknown/invalid command"); |
432 | results = cmd_results_new(CMD_INVALID, input, "Unknown/invalid command"); | ||
433 | goto cleanup; | 432 | goto cleanup; |
434 | } | 433 | } |
435 | 434 | ||
@@ -471,10 +470,12 @@ struct cmd_results *config_commands_command(char *exec) { | |||
471 | } | 470 | } |
472 | if (!policy) { | 471 | if (!policy) { |
473 | policy = alloc_command_policy(cmd); | 472 | policy = alloc_command_policy(cmd); |
474 | sway_assert(policy, "Unable to allocate security policy"); | 473 | if (!sway_assert(policy, "Unable to allocate security policy")) { |
475 | if (policy) { | 474 | results = cmd_results_new(CMD_INVALID, cmd, |
476 | list_add(config->command_policies, policy); | 475 | "Unable to allocate memory"); |
476 | goto cleanup; | ||
477 | } | 477 | } |
478 | list_add(config->command_policies, policy); | ||
478 | } | 479 | } |
479 | policy->context = context; | 480 | policy->context = context; |
480 | 481 | ||