summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2007-06-11 17:57:24 +0000
committermjacob <mjacob@FreeBSD.org>2007-06-11 17:57:24 +0000
commit65ecac1b1eb1f839f235afdfe7654dc45cee0ae9 (patch)
treed75551979d4da4e2cf5483d16ace1ef9958137c4 /sys
parent81c02b19a4d06cefe0267b411492630c6d1a15ca (diff)
downloadFreeBSD-src-65ecac1b1eb1f839f235afdfe7654dc45cee0ae9.zip
FreeBSD-src-65ecac1b1eb1f839f235afdfe7654dc45cee0ae9.tar.gz
Check against maxsegsz being zero in bus_dma_tag_create and return EINVAL
if it is. Reviewed by: scott long
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/busdma_machdep.c4
-rw-r--r--sys/i386/i386/busdma_machdep.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/amd64/amd64/busdma_machdep.c b/sys/amd64/amd64/busdma_machdep.c
index 59495bf..462abe9 100644
--- a/sys/amd64/amd64/busdma_machdep.c
+++ b/sys/amd64/amd64/busdma_machdep.c
@@ -220,6 +220,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
if (boundary != 0 && boundary < maxsegsz)
maxsegsz = boundary;
+ if (maxsegsz == 0) {
+ return (EINVAL);
+ }
+
/* Return a NULL tag on failure */
*dmat = NULL;
diff --git a/sys/i386/i386/busdma_machdep.c b/sys/i386/i386/busdma_machdep.c
index 5d7c9cd..90f8848 100644
--- a/sys/i386/i386/busdma_machdep.c
+++ b/sys/i386/i386/busdma_machdep.c
@@ -225,6 +225,10 @@ bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment,
if (boundary != 0 && boundary < maxsegsz)
maxsegsz = boundary;
+ if (maxsegsz == 0) {
+ return (EINVAL);
+ }
+
/* Return a NULL tag on failure */
*dmat = NULL;
OpenPOWER on IntegriCloud