diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-07-01 14:46:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-01 14:46:21 -0400 |
commit | f745a3b3ef0b575d9a3ea802c338a003b0cc6af5 (patch) | |
tree | af35993f88080f41b9e2dddb69a20d5152a088ed /sway | |
parent | fe763991d4865bffaafcd3ff15ecede6a9daa6ae (diff) | |
parent | 7d8a84b58790454308bcac114d3f28a09c28928c (diff) | |
download | sway-f745a3b3ef0b575d9a3ea802c338a003b0cc6af5.tar.xz |
Merge pull request #1255 from Hummer12007/policy
Prevent null pointer dereferences with policy allocation failure
Diffstat (limited to 'sway')
-rw-r--r-- | sway/commands.c | 6 | ||||
-rw-r--r-- | sway/commands/permit.c | 6 | ||||
-rw-r--r-- | sway/security.c | 6 |
3 files changed, 9 insertions, 9 deletions
diff --git a/sway/commands.c b/sway/commands.c index 14be656a..d55d9a96 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -608,10 +608,10 @@ struct cmd_results *config_commands_command(char *exec) { } if (!policy) { policy = alloc_command_policy(cmd); - if (!policy) { - sway_abort("Unable to allocate security policy"); + sway_assert(policy, "Unable to allocate security policy"); + if (policy) { + list_add(config->command_policies, policy); } - list_add(config->command_policies, policy); } policy->context = context; diff --git a/sway/commands/permit.c b/sway/commands/permit.c index 66fa4e2a..7a5e06f7 100644 --- a/sway/commands/permit.c +++ b/sway/commands/permit.c @@ -65,11 +65,11 @@ struct cmd_results *cmd_permit(int argc, char **argv) { } struct feature_policy *policy = get_feature_policy(program); - if (assign_perms) { + if (policy && assign_perms) { policy->features |= get_features(argc, argv, &error); + sway_log(L_DEBUG, "Permissions granted to %s for features %d", + policy->program, policy->features); } - sway_log(L_DEBUG, "Permissions granted to %s for features %d", - policy->program, policy->features); free(program); return cmd_results_new(CMD_SUCCESS, NULL, NULL); diff --git a/sway/security.c b/sway/security.c index 92de06c1..fcd70f9d 100644 --- a/sway/security.c +++ b/sway/security.c @@ -152,10 +152,10 @@ struct feature_policy *get_feature_policy(const char *name) { } if (!policy) { policy = alloc_feature_policy(name); - if (!policy) { - sway_abort("Unable to allocate security policy"); + sway_assert(policy, "Unable to allocate security policy"); + if (policy) { + list_add(config->feature_policies, policy); } - list_add(config->feature_policies, policy); } return policy; } |