diff --git a/CHANGELOG.md b/CHANGELOG.md index dd2cad32..08216633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Changelog +* [Unreleased](#unreleased) * [1.4.0](#1-4-0) * [1.3.0](#1-3-0) * [1.2.3](#1-2-3) @@ -8,6 +9,14 @@ * [1.2.0](#1-2-0) +## Unreleased +### Added +### Deprecated +### Removed +### Fixed +### Security + + ## 1.4.0 ### Added diff --git a/input.c b/input.c index 0e4cb675..442cd322 100644 --- a/input.c +++ b/input.c @@ -151,29 +151,32 @@ execute_binding(struct seat *seat, struct terminal *term, struct pipe_context *ctx = NULL; + int pipe_fd[2] = {-1, -1}; + int stdout_fd = -1; + int stderr_fd = -1; + + char *text = NULL; + size_t len = 0; + char *cmd = strdup(pipe_cmd); char **argv = NULL; if (!tokenize_cmdline(cmd, &argv)) goto pipe_err; - int pipe_fd[2] = {-1, -1}; if (pipe(pipe_fd) < 0) { LOG_ERRNO("failed to create pipe"); goto pipe_err; } - int stdout_fd = open("/dev/null", O_WRONLY); - int stderr_fd = open("/dev/null", O_WRONLY); + stdout_fd = open("/dev/null", O_WRONLY); + stderr_fd = open("/dev/null", O_WRONLY); if (stdout_fd < 0 || stderr_fd < 0) { LOG_ERRNO("failed to open /dev/null"); goto pipe_err; } - char *text; - size_t len; - bool success = action == BIND_ACTION_PIPE_SCROLLBACK ? term_scrollback_to_text(term, &text, &len) : term_view_to_text(term, &text, &len);