From f2114f3bcd6d262d1d1ae3e98a5e63f0c149dae8 Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Mon, 11 Jun 2007 17:57:24 +0000 Subject: [PATCH] Check against maxsegsz being zero in bus_dma_tag_create and return EINVAL if it is. Reviewed by: scott long --- sys/amd64/amd64/busdma_machdep.c | 4 ++++ sys/i386/i386/busdma_machdep.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/sys/amd64/amd64/busdma_machdep.c b/sys/amd64/amd64/busdma_machdep.c index 59495bfc198..462abe97b38 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 5d7c9cdcf40..90f8848d13f 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;