From: deraadt Date: Mon, 17 Apr 2017 20:22:14 +0000 (+0000) Subject: matthieu@ observes % pax (without any arguments) hits pledge violation, X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=aa8cf620a7d267e08d4a7882d04332ef6fcbdc10;p=openbsd matthieu@ observes % pax (without any arguments) hits pledge violation, because it tries MTIOCTOP against stdin, the tty. It is very inconvenient to use isatty to distinguish this difference in userland, so return ENOTTY for tty devices. ok natano --- diff --git a/sys/kern/kern_pledge.c b/sys/kern/kern_pledge.c index 406fbfee3fa..b1c5bbcfe13 100644 --- a/sys/kern/kern_pledge.c +++ b/sys/kern/kern_pledge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_pledge.c,v 1.203 2017/04/13 04:06:46 guenther Exp $ */ +/* $OpenBSD: kern_pledge.c,v 1.204 2017/04/17 20:22:14 deraadt Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott @@ -1155,9 +1155,12 @@ pledge_ioctl(struct proc *p, long com, struct file *fp) case MTIOCTOP: /* for pax(1) and such, checking tapes... */ if (fp->f_type == DTYPE_VNODE && - vp->v_type == VCHR && - (vp->v_flag & VISTTY) == 0) - return (0); + vp->v_type == VCHR) { + if (vp->v_flag & VISTTY) + return (ENOTTY); + else + return (0); + } break; } }