summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_ccd.c
diff options
context:
space:
mode:
authorkris <kris@FreeBSD.org>2001-09-10 11:28:07 +0000
committerkris <kris@FreeBSD.org>2001-09-10 11:28:07 +0000
commitbd6f9cb9b63e7a70079067566e50b59abc81ce16 (patch)
treefd84e8d4d01cdc0f4ba330211093170c75b99172 /sys/geom/geom_ccd.c
parent335f7eeb6361cc1f5a1fd9251b0f63ef3451f5ba (diff)
downloadFreeBSD-src-bd6f9cb9b63e7a70079067566e50b59abc81ce16.zip
FreeBSD-src-bd6f9cb9b63e7a70079067566e50b59abc81ce16.tar.gz
Fix some signed/unsigned integer confusion, and add bounds checking of
arguments to some functions. Obtained from: NetBSD Reviewed by: peter MFC after: 2 weeks
Diffstat (limited to 'sys/geom/geom_ccd.c')
-rw-r--r--sys/geom/geom_ccd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c
index 03f5a90..68df08e 100644
--- a/sys/geom/geom_ccd.c
+++ b/sys/geom/geom_ccd.c
@@ -1263,6 +1263,9 @@ ccdioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p)
if ((error = ccdlock(cs)) != 0)
return (error);
+ if (ccio->ccio_ndisks > CCD_MAXNDISKS)
+ return (EINVAL);
+
/* Fill in some important bits. */
cs->sc_ileave = ccio->ccio_ileave;
if (cs->sc_ileave == 0 &&
OpenPOWER on IntegriCloud