Page MenuHomeFreeBSD

D22709.diff
No OneTemporary

D22709.diff

Index: head/usr.bin/tail/tail.c
===================================================================
--- head/usr.bin/tail/tail.c
+++ head/usr.bin/tail/tail.c
@@ -93,11 +93,6 @@
char *p;
cap_rights_t rights;
- cap_rights_init(&rights, CAP_FSTAT, CAP_FSTATFS, CAP_FCNTL, CAP_MMAP_RW);
- if (caph_rights_limit(STDIN_FILENO, &rights) < 0 ||
- caph_limit_stderr() < 0 || caph_limit_stdout() < 0)
- err(1, "can't limit stdio rights");
-
/*
* Tail's options are weird. First, -n10 is the same as -n-10, not
* -n+10. Second, the number options are 1 based and not offsets,
@@ -166,6 +161,14 @@
argv += optind;
no_files = argc ? argc : 1;
+
+ cap_rights_init(&rights, CAP_FSTAT, CAP_FSTATFS, CAP_FCNTL,
+ CAP_MMAP_R);
+ if (fflag)
+ cap_rights_set(&rights, CAP_EVENT);
+ if (caph_rights_limit(STDIN_FILENO, &rights) < 0 ||
+ caph_limit_stderr() < 0 || caph_limit_stdout() < 0)
+ err(1, "can't limit stdio rights");
fa = fileargs_init(argc, argv, O_RDONLY, 0, &rights, FA_OPEN);
if (fa == NULL)

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 8, 9:21 AM (21 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16524748
Default Alt Text
D22709.diff (1 KB)

Event Timeline