only 32 bits of the pledgecode were passed up via ktrace
authorderaadt <deraadt@openbsd.org>
Thu, 20 Apr 2017 15:21:51 +0000 (15:21 +0000)
committerderaadt <deraadt@openbsd.org>
Thu, 20 Apr 2017 15:21:51 +0000 (15:21 +0000)
from Anton Lindqvist
ok semarie

sys/kern/kern_pledge.c
sys/sys/ktrace.h
sys/sys/pledge.h
sys/sys/syscall_mi.h

index b1c5bbc..d99a60d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: kern_pledge.c,v 1.204 2017/04/17 20:22:14 deraadt Exp $       */
+/*     $OpenBSD: kern_pledge.c,v 1.205 2017/04/20 15:21:53 deraadt Exp $       */
 
 /*
  * Copyright (c) 2015 Nicholas Marriott <nicm@openbsd.org>
@@ -545,7 +545,7 @@ sys_pledge(struct proc *p, void *v, register_t *retval)
 }
 
 int
-pledge_syscall(struct proc *p, int code, int *tval)
+pledge_syscall(struct proc *p, int code, uint64_t *tval)
 {
        p->p_pledge_syscall = code;
        *tval = 0;
index c6c7ec5..cf47809 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ktrace.h,v 1.33 2016/10/08 02:16:43 guenther Exp $    */
+/*     $OpenBSD: ktrace.h,v 1.34 2017/04/20 15:21:51 deraadt Exp $     */
 /*     $NetBSD: ktrace.h,v 1.12 1996/02/04 02:12:29 christos Exp $     */
 
 /*
@@ -158,9 +158,9 @@ struct ktr_user {
  */
 #define        KTR_PLEDGE      12
 struct ktr_pledge {
-       int     error;
-       int     syscall;
-       int64_t code;
+       int             error;
+       int             syscall;
+       uint64_t        code;
 };
 
 /*
index ca815f3..8ced3ae 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pledge.h,v 1.30 2017/01/23 04:25:05 deraadt Exp $     */
+/*     $OpenBSD: pledge.h,v 1.31 2017/04/20 15:21:51 deraadt Exp $     */
 
 /*
  * Copyright (c) 2015 Nicholas Marriott <nicm@openbsd.org>
@@ -111,7 +111,7 @@ static struct {
 
 #ifdef _KERNEL
 
-int    pledge_syscall(struct proc *, int, int *);
+int    pledge_syscall(struct proc *, int, uint64_t *);
 int    pledge_fail(struct proc *, int, uint64_t);
 
 struct mbuf;
index 24521bd..bf0a0ff 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: syscall_mi.h,v 1.17 2017/02/14 10:31:15 mpi Exp $     */
+/*     $OpenBSD: syscall_mi.h,v 1.18 2017/04/20 15:21:51 deraadt Exp $ */
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -45,8 +45,9 @@ static inline int
 mi_syscall(struct proc *p, register_t code, const struct sysent *callp,
     register_t *argp, register_t retval[2])
 {
+       uint64_t tval;
        int lock = !(callp->sy_flags & SY_NOLOCK);
-       int error, pledged, tval;
+       int error, pledged;
 
        /* refresh the thread's cache of the process's creds */
        refreshcreds(p);