From ac288bbb4a95e7c95805177a1dd90e8db7036e6b Mon Sep 17 00:00:00 2001 From: marius Date: Fri, 20 Nov 2015 02:23:35 +0000 Subject: [PATCH] Avoid a NULL pointer dereference in bounce_bus_dmamap_sync() when the map has been created via bounce_bus_dmamem_alloc(). Even for coherent DMA - which bus_dmamem_alloc(9) typically is used for -, calling of bus_dmamap_sync(9) isn't optional. PR: 188899 (non-original problem) MFC after: 3 days --- sys/arm64/arm64/busdma_bounce.c | 2 +- sys/x86/x86/busdma_bounce.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/busdma_bounce.c b/sys/arm64/arm64/busdma_bounce.c index 57e44cc8742d..8ff364694b49 100644 --- a/sys/arm64/arm64/busdma_bounce.c +++ b/sys/arm64/arm64/busdma_bounce.c @@ -767,7 +767,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, struct bounce_page *bpage; vm_offset_t datavaddr, tempvaddr; - if ((bpage = STAILQ_FIRST(&map->bpages)) == NULL) + if (map == NULL || (bpage = STAILQ_FIRST(&map->bpages)) == NULL) return; /* diff --git a/sys/x86/x86/busdma_bounce.c b/sys/x86/x86/busdma_bounce.c index 4826a2b32a0b..9772f33b4fa4 100644 --- a/sys/x86/x86/busdma_bounce.c +++ b/sys/x86/x86/busdma_bounce.c @@ -892,7 +892,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t datavaddr, tempvaddr; bus_size_t datacount1, datacount2; - if ((bpage = STAILQ_FIRST(&map->bpages)) == NULL) + if (map == NULL || (bpage = STAILQ_FIRST(&map->bpages)) == NULL) return; /*