upstream: Avoid kill with -1 argument. The out_ctx label can be

reached before fork has been called. If this happens, then kill -1 would be
called, sending SIGTERM to all processes reachable by the current process.

From tobias@ and c3h2_ctf via github PR#286, ok djm@

OpenBSD-Commit-ID: 6277af1207d81202f5daffdccfeeaed4c763b1a8
This commit is contained in:
dtucker@openbsd.org 2022-05-27 04:27:49 +00:00 committed by Darren Tucker
parent 533b31cd08
commit 5d3a77f4c5
1 changed files with 3 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: readpass.c,v 1.69 2021/07/23 05:56:47 djm Exp $ */ /* $OpenBSD: readpass.c,v 1.70 2022/05/27 04:27:49 dtucker Exp $ */
/* /*
* Copyright (c) 2001 Markus Friedl. All rights reserved. * Copyright (c) 2001 Markus Friedl. All rights reserved.
* *
@ -286,7 +286,8 @@ notify_start(int force_askpass, const char *fmt, ...)
} }
out_ctx: out_ctx:
if ((ret = calloc(1, sizeof(*ret))) == NULL) { if ((ret = calloc(1, sizeof(*ret))) == NULL) {
kill(pid, SIGTERM); if (pid != -1)
kill(pid, SIGTERM);
fatal_f("calloc failed"); fatal_f("calloc failed");
} }
ret->pid = pid; ret->pid = pid;