diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index bc7e7c647388..418e0088e4e4 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 #include @@ -632,6 +632,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. */ diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c index f16b11ea1f3e..cc29ae408578 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 @@ -389,6 +389,12 @@ passopen(dev_t dev, int flags, int fmt, struct proc *p) if (softc->flags & PASS_FLAG_INVALID) return(ENXIO); + /* + * Only allow read-write access. + */ + if (((flags & FWRITE) == 0) || ((flags & FREAD) == 0)) + return(EPERM); + /* * We don't allow nonblocking access. */