svn commit: r314679 - user/bapt/diff
Baptiste Daroussin
bapt at FreeBSD.org
Sat Mar 4 21:06:41 UTC 2017
Author: bapt
Date: Sat Mar 4 21:06:40 2017
New Revision: 314679
URL: https://svnweb.freebsd.org/changeset/base/314679
Log:
Fix passing diffing from stdin in capability mode
Modified:
user/bapt/diff/diffreg.c
Modified: user/bapt/diff/diffreg.c
==============================================================================
--- user/bapt/diff/diffreg.c Sat Mar 4 20:50:17 2017 (r314678)
+++ user/bapt/diff/diffreg.c Sat Mar 4 21:06:40 2017 (r314679)
@@ -425,8 +425,14 @@ diffreg(char *file1, char *file2, int fl
err(2, "unable to limit rights on: %s", file1);
if (cap_rights_limit(fileno(f2), &rights_ro) < 0)
err(2, "unable to limit rights on: %s", file2);
- if (caph_limit_stdio() == -1)
- err(2, "unable to limit stdio");
+ if (fileno(f1) == STDIN_FILENO || fileno(f2) == STDIN_FILENO) {
+ /* stding has already been limited */
+ if (caph_limit_stderr() == -1)
+ err(2, "unable to limit stderr");
+ if (caph_limit_stdout() == -1)
+ err(2, "unable to limit stdout");
+ } else if (caph_limit_stdio() == -1)
+ err(2, "unable to limit stdio");
caph_cache_catpages();
if (cap_enter() < 0 && errno != ENOSYS)
More information about the svn-src-user
mailing list