I think we might be leaking uninitialized kernel memory.

in tifb,

        if (bus_dmamem_alloc(sc->sc_dmat, sc->sc_vramsize, 0, 0,
            sc->sc_dmamem, 1, &segs, BUS_DMA_NOWAIT) != 0) {

bus_dma* rounds up to PAGE_SIZE chunks.

        memset((void *)sc->sc_vramaddr, 0, sc->sc_vramsize);

We zero the not-rounded-up size.

What do you think?

On Tue, Jul 23, 2019 at 02:34:12PM +0000, Rin Okuyama wrote:
> Module Name:  src
> Committed By: rin
> Date:         Tue Jul 23 14:34:12 UTC 2019
> 
> Modified Files:
>       src/sys/arch/arm/omap: tifb.c
>       src/sys/arch/luna68k/dev: lunafb.c
>       src/sys/dev/fdt: simplefb.c
> 
> Log Message:
> For drivers whose framebuffer is located not page-aligned, permit
> offset of mmap up to (length of framebuffer) + (page offset of base
> address of framebuffer). This is necessary in order to map the
> highest page of framebuffer correctly, see,
> http://cvsweb.netbsd.org/bsdweb.cgi/xsrc/external/mit/xf86-video-wsfb/dist/src/wsfb_driver.c#rev1.35

Reply via email to