svn commit: r331633 - stable/10/sys/cam/scsi
Brooks Davis
brooks at FreeBSD.org
Tue Mar 27 17:43:04 UTC 2018
Author: brooks
Date: Tue Mar 27 17:43:03 2018
New Revision: 331633
URL: https://svnweb.freebsd.org/changeset/base/331633
Log:
MFC r330820:
Reject ioctls to SCSI enclosures from 32-bit compat processes.
The ioctl objects contain pointers and require translation and some
refactoring of the infrastructure to work. For now prevent opertion
on garbage values. This is very slightly overbroad in that ENCIOC_INIT
is safe.
Reviewed by: imp, kib
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14671
Modified:
stable/10/sys/cam/scsi/scsi_enc.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/cam/scsi/scsi_enc.c
==============================================================================
--- stable/10/sys/cam/scsi/scsi_enc.c Tue Mar 27 17:42:04 2018 (r331632)
+++ stable/10/sys/cam/scsi/scsi_enc.c Tue Mar 27 17:43:03 2018 (r331633)
@@ -27,6 +27,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_compat.h"
+
#include <sys/param.h>
#include <sys/conf.h>
@@ -37,8 +39,10 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
+#include <sys/proc.h>
#include <sys/queue.h>
#include <sys/sx.h>
+#include <sys/sysent.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
#include <sys/types.h>
@@ -351,6 +355,10 @@ enc_ioctl(struct cdev *dev, u_long cmd, caddr_t arg_ad
void *addr;
int error, i;
+#ifdef COMPAT_FREEBSD32
+ if (SV_PROC_FLAG(td->td_proc, SV_ILP32))
+ return (ENOTTY);
+#endif
if (arg_addr)
addr = *((caddr_t *) arg_addr);
More information about the svn-src-stable-10
mailing list