mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-18 15:30:21 +00:00
Capsicumize col(1)
This commit is contained in:
parent
078fd35f79
commit
e5ea68e766
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=282342
@ -45,11 +45,15 @@ static char sccsid[] = "@(#)col.c 8.5 (Berkeley) 5/4/95";
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/capsicum.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <wchar.h>
|
||||
#include <wctype.h>
|
||||
@ -129,9 +133,24 @@ main(int argc, char **argv)
|
||||
int this_line; /* line l points to */
|
||||
int nflushd_lines; /* number of lines that were flushed */
|
||||
int adjust, opt, warned, width;
|
||||
cap_rights_t rights;
|
||||
unsigned long cmd;
|
||||
|
||||
(void)setlocale(LC_CTYPE, "");
|
||||
|
||||
cap_rights_init(&rights, CAP_FSTAT, CAP_READ);
|
||||
if (cap_rights_limit(STDIN_FILENO, &rights) < 0 && errno != ENOSYS)
|
||||
err(1, "unable to limit rights for stdin");
|
||||
cap_rights_init(&rights, CAP_FSTAT, CAP_WRITE, CAP_IOCTL);
|
||||
if (cap_rights_limit(STDOUT_FILENO, &rights) < 0 && errno != ENOSYS)
|
||||
err(1, "unable to limit rights for stdout");
|
||||
cmd = TIOCGETA; /* required by isatty(3) in printf(3) */
|
||||
if (cap_ioctls_limit(STDOUT_FILENO, &cmd, 1) < 0 && errno != ENOSYS)
|
||||
err(1, "unable to limit ioctls for stdout");
|
||||
|
||||
if (cap_enter() < 0 && errno != ENOSYS)
|
||||
err(1, "unable to enter capability mode");
|
||||
|
||||
max_bufd_lines = 128;
|
||||
compress_spaces = 1; /* compress spaces into tabs */
|
||||
while ((opt = getopt(argc, argv, "bfhl:px")) != -1)
|
||||
|
Loading…
Reference in New Issue
Block a user