Fix regression when stdin/out/err fds are are overridden by shell.
Submitted by: Pawel Biernacki <pawel.biernacki@gmail.com> Reported by: ngie Approved by: ngie Sponsored by: Mysterious Code Ltd. Differential Revision: https://reviews.freebsd.org/D8543
This commit is contained in:
parent
5357f8f7c8
commit
94161f30b7
14
bin/dd/dd.c
14
bin/dd/dd.c
@ -142,8 +142,6 @@ setup(void)
|
||||
in.fd = open(in.name, O_RDONLY, 0);
|
||||
if (in.fd == -1)
|
||||
err(1, "%s", in.name);
|
||||
if (caph_limit_stdin() == -1)
|
||||
err(1, "unable to limit capability rights");
|
||||
}
|
||||
|
||||
getfdtype(&in);
|
||||
@ -176,8 +174,6 @@ setup(void)
|
||||
}
|
||||
if (out.fd == -1)
|
||||
err(1, "%s", out.name);
|
||||
if (caph_limit_stdout() == -1)
|
||||
err(1, "unable to limit capability rights");
|
||||
}
|
||||
|
||||
getfdtype(&out);
|
||||
@ -188,6 +184,16 @@ setup(void)
|
||||
errno != ENOSYS)
|
||||
err(1, "unable to limit capability rights");
|
||||
|
||||
if (in.fd != STDIN_FILENO && out.fd != STDIN_FILENO) {
|
||||
if (caph_limit_stdin() == -1)
|
||||
err(1, "unable to limit capability rights");
|
||||
}
|
||||
|
||||
if (in.fd != STDOUT_FILENO && out.fd != STDOUT_FILENO) {
|
||||
if (caph_limit_stdout() == -1)
|
||||
err(1, "unable to limit capability rights");
|
||||
}
|
||||
|
||||
if (in.fd != STDERR_FILENO && out.fd != STDERR_FILENO) {
|
||||
if (caph_limit_stderr() == -1)
|
||||
err(1, "unable to limit capability rights");
|
||||
|
Loading…
Reference in New Issue
Block a user