Module Name:    src
Committed By:   tsutsui
Date:           Thu Jan  2 18:45:24 UTC 2014

Modified Files:
        src/sys/arch/luna68k/stand/boot: sc.c

Log Message:
Add bound check of a controller number in scrun().

Noticed by miod@openbsd.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/luna68k/stand/boot/sc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/luna68k/stand/boot/sc.c
diff -u src/sys/arch/luna68k/stand/boot/sc.c:1.5 src/sys/arch/luna68k/stand/boot/sc.c:1.6
--- src/sys/arch/luna68k/stand/boot/sc.c:1.5	Thu Jan  2 17:47:23 2014
+++ src/sys/arch/luna68k/stand/boot/sc.c	Thu Jan  2 18:45:24 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: sc.c,v 1.5 2014/01/02 17:47:23 tsutsui Exp $	*/
+/*	$NetBSD: sc.c,v 1.6 2014/01/02 18:45:24 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 1992 OMRON Corporation.
@@ -254,8 +254,14 @@ int
 scrun(int ctlr, int slave, u_char *cdb, int cdblen, u_char *buf, int len,
     volatile int *lock)
 {
-	struct scsi_softc *hs = &scsi_softc[ctlr];
-	struct scsidevice *hd = (struct scsidevice *) hs->sc_hc->hp_addr;
+	struct scsi_softc *hs;
+	struct scsidevice *hd;
+
+	if (ctlr < 0 || ctlr >= NSC)
+		return 0;
+
+	hs = &scsi_softc[ctlr];
+	hd = (struct scsidevice *)hs->sc_hc->hp_addr;
 
 	if (hd->scsi_ssts & (SSTS_INITIATOR|SSTS_TARGET|SSTS_BUSY))
 		return(0);

Reply via email to