summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/cam/cam_xpt.c8
-rw-r--r--sys/cam/scsi/scsi_pass.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c
index bc7e7c6..418e008 100644
--- a/sys/cam/cam_xpt.c
+++ b/sys/cam/cam_xpt.c
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: cam_xpt.c,v 1.1 1998/09/15 06:33:23 gibbs Exp $
+ * $Id: cam_xpt.c,v 1.2 1998/09/15 22:05:44 gibbs Exp $
*/
#include <sys/param.h>
#include <sys/systm.h>
@@ -633,6 +633,12 @@ xptopen(dev_t dev, int flags, int fmt, struct proc *p)
unit = minor(dev) & 0xff;
/*
+ * Only allow read-write access.
+ */
+ if (((flags & FWRITE) == 0) || ((flags & FREAD) == 0))
+ return(EPERM);
+
+ /*
* We don't allow nonblocking access.
*/
if ((flags & O_NONBLOCK) != 0) {
diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c
index f16b11e..cc29ae4 100644
--- a/sys/cam/scsi/scsi_pass.c
+++ b/sys/cam/scsi/scsi_pass.c
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id$
+ * $Id: scsi_pass.c,v 1.1 1998/09/15 06:36:34 gibbs Exp $
*/
#include <sys/param.h>
@@ -390,6 +390,12 @@ passopen(dev_t dev, int flags, int fmt, struct proc *p)
return(ENXIO);
/*
+ * Only allow read-write access.
+ */
+ if (((flags & FWRITE) == 0) || ((flags & FREAD) == 0))
+ return(EPERM);
+
+ /*
* We don't allow nonblocking access.
*/
if ((flags & O_NONBLOCK) != 0) {
OpenPOWER on IntegriCloud