From: Venkatesh Srinivas Date: Sun, 27 Nov 2011 17:16:45 +0000 (-0800) Subject: kernel -- ktrace: Fix possible one-word stack leak to userspace. X-Git-Tag: v3.0.0~549 X-Git-Url: http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/59d38b6efa9c927b3bef7d1549de7a5248fbf3fd kernel -- ktrace: Fix possible one-word stack leak to userspace. From OpenBSD kern_ktrace.c 1.55, via Loganaden Velvindron. --- diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index 6ccd577ff8..eda9d46817 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -128,8 +128,11 @@ ktrsysret(struct lwp *lp, int code, int error, register_t retval) kth = ktrgetheader(KTR_SYSRET); ktp.ktr_code = code; ktp.ktr_error = error; - ktp.ktr_retval = retval; /* what about val2 ? */ - + if (error == 0) + ktp.ktr_retval = retval; /* what about val2 ? */ + else + ktp.ktr_retval = 0; + kth->ktr_buf = (caddr_t)&ktp; kth->ktr_len = sizeof(struct ktr_sysret);