Thread (32 messages) 32 messages, 6 authors, 2024-01-25

Re: [PATCH 2/8] powerpc/rtas: use memmove for potentially overlapping buffer copy

From: Andrew Donnellan <hidden>
Date: 2023-03-23 04:10:44

On Mon, 2023-03-06 at 15:33 -0600, Nathan Lynch via B4 Relay wrote:
From: Nathan Lynch <redacted>

Using memcpy() isn't safe when buf is identical to rtas_err_buf,
which
can happen during boot before slab is up. Full context which may not
be obvious from the diff:

        if (altbuf) {
                buf = altbuf;
        } else {
                buf = rtas_err_buf;
                if (slab_is_available())
                        buf = kmalloc(RTAS_ERROR_LOG_MAX,
GFP_ATOMIC);
        }
        if (buf)
                memcpy(buf, rtas_err_buf, RTAS_ERROR_LOG_MAX);

This was found by inspection and I'm not aware of it causing problems
in practice. It appears to have been introduced by commit
033ef338b6e0 ("powerpc: Merge rtas.c into arch/powerpc/kernel"); the
old ppc64 version of this code did not have this problem.

Use memmove() instead.

Fixes: 033ef338b6e0 ("powerpc: Merge rtas.c into
arch/powerpc/kernel")
Signed-off-by: Nathan Lynch <redacted>
Reviewed-by: Andrew Donnellan <redacted>

-- 
Andrew Donnellan    OzLabs, ADL Canberra
ajd@linux.ibm.com   IBM Australia Limited
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help