Message ID | 20240229115149.749264-1-mpe@ellerman.id.au (mailing list archive) |
---|---|
State | Accepted |
Commit | f2d5bccaca3e8c09c9b9c8485375f7bdbb2631d2 |
Headers | show |
Series | powerpc/boot: Only free if realloc() succeeds | expand |
On Thu, 29 Feb 2024 22:51:49 +1100, Michael Ellerman wrote: > simple_realloc() frees the original buffer (ptr) even if the > reallocation failed. > > Fix it to behave like standard realloc() and only free the original > buffer if the reallocation succeeded. > > > [...] Applied to powerpc/next. [1/1] powerpc/boot: Only free if realloc() succeeds https://git.kernel.org/powerpc/c/f2d5bccaca3e8c09c9b9c8485375f7bdbb2631d2 cheers
diff --git a/arch/powerpc/boot/simple_alloc.c b/arch/powerpc/boot/simple_alloc.c index db9aaa5face3..d07796fdf91a 100644 --- a/arch/powerpc/boot/simple_alloc.c +++ b/arch/powerpc/boot/simple_alloc.c @@ -112,10 +112,11 @@ static void *simple_realloc(void *ptr, unsigned long size) return ptr; new = simple_malloc(size); - if (new) + if (new) { memcpy(new, ptr, p->size); + simple_free(ptr); + } - simple_free(ptr); return new; }
simple_realloc() frees the original buffer (ptr) even if the reallocation failed. Fix it to behave like standard realloc() and only free the original buffer if the reallocation succeeded. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> --- arch/powerpc/boot/simple_alloc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)