aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/output
diff options
context:
space:
mode:
authorLibravatar ael-code <tommy.ael@gmail.com>2018-06-26 12:53:47 +0200
committerLibravatar ael-code <tommy.ael@gmail.com>2018-06-26 15:37:39 +0200
commit4550cb2b3e7e6b4242cf2a3e126b6f47bc8f2182 (patch)
treeddcd6b40ae89d26f79f2db4212fc9d6a5c2c3cac /sway/commands/output
parentMerge pull request #2163 from martinetd/use-after-free (diff)
downloadsway-4550cb2b3e7e6b4242cf2a3e126b6f47bc8f2182.tar.gz
sway-4550cb2b3e7e6b4242cf2a3e126b6f47bc8f2182.tar.zst
sway-4550cb2b3e7e6b4242cf2a3e126b6f47bc8f2182.zip
fix memleak on background cmd error
- src must be free after join_args() - wordfree must bee used after wordexp
Diffstat (limited to 'sway/commands/output')
-rw-r--r--sway/commands/output/background.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sway/commands/output/background.c b/sway/commands/output/background.c
index 82bccf68..4f422cec 100644
--- a/sway/commands/output/background.c
+++ b/sway/commands/output/background.c
@@ -62,8 +62,11 @@ struct cmd_results *output_cmd_background(int argc, char **argv) {
62 wordexp_t p; 62 wordexp_t p;
63 char *src = join_args(argv, j); 63 char *src = join_args(argv, j);
64 if (wordexp(src, &p, 0) != 0 || p.we_wordv[0] == NULL) { 64 if (wordexp(src, &p, 0) != 0 || p.we_wordv[0] == NULL) {
65 return cmd_results_new(CMD_INVALID, "output", 65 struct cmd_results *cmd_res = cmd_results_new(CMD_INVALID, "output",
66 "Invalid syntax (%s).", src); 66 "Invalid syntax (%s)", src);
67 free(src);
68 wordfree(&p);
69 return cmd_res;
67 } 70 }
68 free(src); 71 free(src);
69 src = p.we_wordv[0]; 72 src = p.we_wordv[0];