svn commit: r309921 - head/bin/dd
Bartek Rutkowski
robak at FreeBSD.org
Mon Dec 12 18:56:41 UTC 2016
Author: robak (ports committer)
Date: Mon Dec 12 18:56:40 2016
New Revision: 309921
URL: https://svnweb.freebsd.org/changeset/base/309921
Log:
Fix regression when stdin/out/err fds are are overridden by shell.
Submitted by: Pawel Biernacki <pawel.biernacki at gmail.com>
Reported by: ngie
Approved by: ngie
Sponsored by: Mysterious Code Ltd.
Differential Revision: https://reviews.freebsd.org/D8543
Modified:
head/bin/dd/dd.c
Modified: head/bin/dd/dd.c
==============================================================================
--- head/bin/dd/dd.c Mon Dec 12 18:55:41 2016 (r309920)
+++ head/bin/dd/dd.c Mon Dec 12 18:56:40 2016 (r309921)
@@ -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");
More information about the svn-src-head
mailing list