diff --git a/sway/commands/bar/position.c b/sway/commands/bar/position.c index 48e7ddbd2..44bb4ae37 100644 --- a/sway/commands/bar/position.c +++ b/sway/commands/bar/position.c @@ -17,6 +17,7 @@ struct cmd_results *bar_cmd_position(int argc, char **argv) { if (strcasecmp(valid[i], argv[0]) == 0) { wlr_log(WLR_DEBUG, "Setting bar position '%s' for bar: %s", argv[0], config->current_bar->id); + free(config->current_bar->position); config->current_bar->position = strdup(argv[0]); return cmd_results_new(CMD_SUCCESS, NULL, NULL); } diff --git a/sway/config.c b/sway/config.c index 2c0511466..f63835bf5 100644 --- a/sway/config.c +++ b/sway/config.c @@ -474,6 +474,7 @@ static bool load_include_config(const char *path, const char *parent_dir, list_del(config->config_chain, index); return false; } + free(real_path); // restore current_config_path config->current_config_path = parent_config; diff --git a/sway/config/output.c b/sway/config/output.c index 205e2633c..1bf9e5f11 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -207,6 +207,8 @@ void apply_output_config(struct output_config *oc, struct sway_container *output output->sway_output->bg_pid = fork(); if (output->sway_output->bg_pid == 0) { execvp(cmd[0], cmd); + } else { + free(command); } } if (oc && oc->dpms_state != DPMS_IGNORE) {