mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-30 17:25:09 +02:00
upstream: never close stdin
The sanitise_stdfd call makes sure that standard file descriptors are open (if they were closed, they are connected with /dev/null). Do not close stdin in any case to prevent error messages when stdin is read multiple times and to prevent later usage of fd 0 for connections, e.g. echo localhost | ssh-keyscan -f - -f - While at it, make stdin-related error messages nicer. Authored with Max Kunzelmann <maxdev at posteo dot de> ok djm OpenBSD-Commit-ID: 48e9b7938e2fa2f9bd47e6de6df66a31e0b375d3
This commit is contained in:
parent
6a42b70e56
commit
bc5dcb8ab9
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: ssh-keyscan.c,v 1.155 2024/01/11 01:45:36 djm Exp $ */
|
/* $OpenBSD: ssh-keyscan.c,v 1.156 2024/04/30 15:40:43 tobias Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
|
* Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
|
||||||
*
|
*
|
||||||
@ -854,7 +854,8 @@ main(int argc, char **argv)
|
|||||||
if (argv[j] == NULL)
|
if (argv[j] == NULL)
|
||||||
fp = stdin;
|
fp = stdin;
|
||||||
else if ((fp = fopen(argv[j], "r")) == NULL)
|
else if ((fp = fopen(argv[j], "r")) == NULL)
|
||||||
fatal("%s: %s: %s", __progname, argv[j], strerror(errno));
|
fatal("%s: %s: %s", __progname,
|
||||||
|
fp == stdin ? "<stdin>" : argv[j], strerror(errno));
|
||||||
|
|
||||||
while (getline(&line, &linesize, fp) != -1) {
|
while (getline(&line, &linesize, fp) != -1) {
|
||||||
/* Chomp off trailing whitespace and comments */
|
/* Chomp off trailing whitespace and comments */
|
||||||
@ -876,9 +877,11 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ferror(fp))
|
if (ferror(fp))
|
||||||
fatal("%s: %s: %s", __progname, argv[j], strerror(errno));
|
fatal("%s: %s: %s", __progname,
|
||||||
|
fp == stdin ? "<stdin>" : argv[j], strerror(errno));
|
||||||
|
|
||||||
fclose(fp);
|
if (fp != stdin)
|
||||||
|
fclose(fp);
|
||||||
}
|
}
|
||||||
free(line);
|
free(line);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user