Re: [PATCH v2 11/11] bisect: handle dup() failure when redirecting stdout
Jeff King <[email protected]> Thu, 6 Aug 2026 11:41:03 -0400
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Aug 05, 2026 at 06:31:00PM +0000, Johannes Schindelin via GitGitGadget wrote:
> diff --git a/builtin/bisect.c b/builtin/bisect.c
> index ceb60b0626..733d28d377 100644
> --- a/builtin/bisect.c
> +++ b/builtin/bisect.c
> @@ -1308,7 +1308,12 @@ static int bisect_run(struct bisect_terms *terms, int argc, const char **argv)
>
> fflush(stdout);
> saved_stdout = dup(1);
> - dup2(temporary_stdout_fd, 1);
> + if (saved_stdout < 0 ||
> + dup2(temporary_stdout_fd, 1) < 0) {
> + res = error_errno(_("could not duplicate stdout"));
> + close(temporary_stdout_fd);
> + break;
> + }
Ironically this produces a new Coverity complaint. ;)
If dup2() fails, then we break out of the loop, leaking saved_stdout.
-Peff