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

Andrew Donnellan ajd at linux.ibm.com
Thu Mar 23 15:09:29 AEDT 2023


On Mon, 2023-03-06 at 15:33 -0600, Nathan Lynch via B4 Relay wrote:
> From: Nathan Lynch <nathanl at linux.ibm.com>
> 
> 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 <nathanl at linux.ibm.com>

Reviewed-by: Andrew Donnellan <ajd at linux.ibm.com>

-- 
Andrew Donnellan    OzLabs, ADL Canberra
ajd at linux.ibm.com   IBM Australia Limited


More information about the Linuxppc-dev mailing list