powerpc/boot: Only free if realloc() succeeds

[ Upstream commit f2d5bccaca3e8c09c9b9c8485375f7bdbb2631d2 ]

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>
Link: https://msgid.link/20240229115149.749264-1-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Michael Ellerman 2024-02-29 22:51:49 +11:00 committed by Ksawlii
parent ced5b44d2b
commit 58b320a694

View file

@ -114,10 +114,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;
}