From 21e00296ecc079e4d1a4084a8cbdb846653ea61a Mon Sep 17 00:00:00 2001 From: Bruce Evans Date: Sat, 14 Oct 1995 07:08:09 +0000 Subject: [PATCH] Don't allow i/o operations for non-root users. Add prototypes. --- sys/dev/syscons/syscons.c | 8 ++++++-- sys/i386/isa/syscons.c | 8 ++++++-- sys/isa/syscons.c | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 8ab9c9c6950e..327e329763fe 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.124 1995/08/16 22:36:43 nate Exp $ + * $Id: syscons.c,v 1.125 1995/09/10 21:35:12 bde Exp $ */ #include "sc.h" @@ -116,8 +116,9 @@ static u_short mouse_or_mask[16] = { 0x0c00, 0x0c00, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000 }; +extern void none_saver(int blank); void none_saver(int blank) { } -void (*current_saver)() = none_saver; +void (*current_saver) __P((int blank)) = none_saver; /* OS specific stuff */ #ifdef not_yet_done @@ -839,6 +840,9 @@ set_mouse_pos: return 0; case KDENABIO: /* allow io operations */ + error = suser(p->p_ucred, &p->p_acflag); + if (error != 0) + return error; fp = (struct trapframe *)p->p_md.md_regs; fp->tf_eflags |= PSL_IOPL; return 0; diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c index 8ab9c9c6950e..327e329763fe 100644 --- a/sys/i386/isa/syscons.c +++ b/sys/i386/isa/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.124 1995/08/16 22:36:43 nate Exp $ + * $Id: syscons.c,v 1.125 1995/09/10 21:35:12 bde Exp $ */ #include "sc.h" @@ -116,8 +116,9 @@ static u_short mouse_or_mask[16] = { 0x0c00, 0x0c00, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000 }; +extern void none_saver(int blank); void none_saver(int blank) { } -void (*current_saver)() = none_saver; +void (*current_saver) __P((int blank)) = none_saver; /* OS specific stuff */ #ifdef not_yet_done @@ -839,6 +840,9 @@ set_mouse_pos: return 0; case KDENABIO: /* allow io operations */ + error = suser(p->p_ucred, &p->p_acflag); + if (error != 0) + return error; fp = (struct trapframe *)p->p_md.md_regs; fp->tf_eflags |= PSL_IOPL; return 0; diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c index 8ab9c9c6950e..327e329763fe 100644 --- a/sys/isa/syscons.c +++ b/sys/isa/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.124 1995/08/16 22:36:43 nate Exp $ + * $Id: syscons.c,v 1.125 1995/09/10 21:35:12 bde Exp $ */ #include "sc.h" @@ -116,8 +116,9 @@ static u_short mouse_or_mask[16] = { 0x0c00, 0x0c00, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000 }; +extern void none_saver(int blank); void none_saver(int blank) { } -void (*current_saver)() = none_saver; +void (*current_saver) __P((int blank)) = none_saver; /* OS specific stuff */ #ifdef not_yet_done @@ -839,6 +840,9 @@ set_mouse_pos: return 0; case KDENABIO: /* allow io operations */ + error = suser(p->p_ucred, &p->p_acflag); + if (error != 0) + return error; fp = (struct trapframe *)p->p_md.md_regs; fp->tf_eflags |= PSL_IOPL; return 0;