diff options
Diffstat (limited to 'sway/commands/ipc.c')
-rw-r--r-- | sway/commands/ipc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sway/commands/ipc.c b/sway/commands/ipc.c index 8a7b849f..f0b3035a 100644 --- a/sway/commands/ipc.c +++ b/sway/commands/ipc.c | |||
@@ -1,3 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | ||
1 | #include <stdio.h> | 2 | #include <stdio.h> |
2 | #include <string.h> | 3 | #include <string.h> |
3 | #include "sway/security.h" | 4 | #include "sway/security.h" |
@@ -18,8 +19,14 @@ struct cmd_results *cmd_ipc(int argc, char **argv) { | |||
18 | return error; | 19 | return error; |
19 | } | 20 | } |
20 | 21 | ||
21 | const char *program = argv[0]; | 22 | char *program = NULL; |
22 | 23 | ||
24 | if (!strcmp(argv[0], "*")) { | ||
25 | program = strdup(argv[0]); | ||
26 | } else if (!(program = resolve_path(argv[0]))) { | ||
27 | return cmd_results_new( | ||
28 | CMD_INVALID, "ipc", "Unable to resolve IPC Policy target."); | ||
29 | } | ||
23 | if (config->reading && strcmp("{", argv[1]) != 0) { | 30 | if (config->reading && strcmp("{", argv[1]) != 0) { |
24 | return cmd_results_new(CMD_INVALID, "ipc", | 31 | return cmd_results_new(CMD_INVALID, "ipc", |
25 | "Expected '{' at start of IPC config definition."); | 32 | "Expected '{' at start of IPC config definition."); |
@@ -32,6 +39,7 @@ struct cmd_results *cmd_ipc(int argc, char **argv) { | |||
32 | current_policy = alloc_ipc_policy(program); | 39 | current_policy = alloc_ipc_policy(program); |
33 | list_add(config->ipc_policies, current_policy); | 40 | list_add(config->ipc_policies, current_policy); |
34 | 41 | ||
42 | free(program); | ||
35 | return cmd_results_new(CMD_BLOCK_IPC, NULL, NULL); | 43 | return cmd_results_new(CMD_BLOCK_IPC, NULL, NULL); |
36 | } | 44 | } |
37 | 45 | ||