From 397e82f0dfa5e219d952c5912c190d26aeb15df7 Mon Sep 17 00:00:00 2001 From: jamie Date: Wed, 15 Jun 2016 01:57:22 +0000 Subject: [PATCH] MFC r301758: Clean up some logic in jail error messages, replacing a missing test and a redundant test with a single correct test. git-svn-id: svn://svn.freebsd.org/base/stable/10@301908 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/kern/kern_jail.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index ed2565a80..133a909fb 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -1943,19 +1943,17 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags) vrele(root); done_errmsg: if (error) { - vfs_getopt(opts, "errmsg", (void **)&errmsg, &errmsg_len); - if (errmsg_len > 0) { + if (vfs_getopt(opts, "errmsg", (void **)&errmsg, + &errmsg_len) == 0 && errmsg_len > 0) { errmsg_pos = 2 * vfs_getopt_pos(opts, "errmsg") + 1; - if (errmsg_pos > 0) { - if (optuio->uio_segflg == UIO_SYSSPACE) - bcopy(errmsg, - optuio->uio_iov[errmsg_pos].iov_base, - errmsg_len); - else - copyout(errmsg, - optuio->uio_iov[errmsg_pos].iov_base, - errmsg_len); - } + if (optuio->uio_segflg == UIO_SYSSPACE) + bcopy(errmsg, + optuio->uio_iov[errmsg_pos].iov_base, + errmsg_len); + else + copyout(errmsg, + optuio->uio_iov[errmsg_pos].iov_base, + errmsg_len); } } done_free: -- 2.45.0