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 | |
parent | 5690bea22745789ada70ba8b4814f2e15ee23bd2 (diff) | |
download | sway-557a14a6fe79002427008a0cf831808202609ae4.tar.xz |
config_commands_command: make alloc failure check more permanent
policy is accessed again later
Found through static analysis
-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) { struct cmd_handler *handler = find_handler(cmd, NULL, 0); if (!handler && strcmp(cmd, "*") != 0) { - char *input = cmd ? cmd : "(empty)"; - results = cmd_results_new(CMD_INVALID, input, "Unknown/invalid command"); + results = cmd_results_new(CMD_INVALID, cmd, "Unknown/invalid command"); goto cleanup; } @@ -471,10 +470,12 @@ struct cmd_results *config_commands_command(char *exec) { } if (!policy) { policy = alloc_command_policy(cmd); - sway_assert(policy, "Unable to allocate security policy"); - if (policy) { - list_add(config->command_policies, policy); + if (!sway_assert(policy, "Unable to allocate security policy")) { + results = cmd_results_new(CMD_INVALID, cmd, + "Unable to allocate memory"); + goto cleanup; } + list_add(config->command_policies, policy); } policy->context = context; |