[PATCH] boot: simple_alloc: check after increasing memory allocation

Li zeming posted 1 patch 2 years, 9 months ago
arch/powerpc/boot/simple_alloc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] boot: simple_alloc: check after increasing memory allocation
Posted by Li zeming 2 years, 9 months ago
The pointer new adds judgment and should help with program robustness.

Signed-off-by: Li zeming <zeming@nfschina.com>
---
 arch/powerpc/boot/simple_alloc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/simple_alloc.c b/arch/powerpc/boot/simple_alloc.c
index 267d6524caac..db9aaa5face3 100644
--- a/arch/powerpc/boot/simple_alloc.c
+++ b/arch/powerpc/boot/simple_alloc.c
@@ -112,7 +112,9 @@ static void *simple_realloc(void *ptr, unsigned long size)
 		return ptr;
 
 	new = simple_malloc(size);
-	memcpy(new, ptr, p->size);
+	if (new)
+		memcpy(new, ptr, p->size);
+
 	simple_free(ptr);
 	return new;
 }
-- 
2.18.2
Re: [PATCH] boot: simple_alloc: check after increasing memory allocation
Posted by Michael Ellerman 1 year, 6 months ago
On Mon, 19 Dec 2022 10:18:16 +0800, Li zeming wrote:
> The pointer new adds judgment and should help with program robustness.
> 
> 

Applied to powerpc/next.

[1/1] boot: simple_alloc: check after increasing memory allocation
      https://git.kernel.org/powerpc/c/69b0194ccec033c208b071e019032c1919c2822d

cheers
Re: [PATCH] boot: simple_alloc: check after increasing memory allocation
Posted by Christophe Leroy 2 years, 9 months ago

Le 19/12/2022 à 03:18, Li zeming a écrit :
> The pointer new adds judgment and should help with program robustness.

This text is not understandable.

Do you mean:

simple_malloc() will return NULL when there is now enough memory left.
Check pointer 'new' before using it to copy the old data.

> 
> Signed-off-by: Li zeming <zeming@nfschina.com>
> ---
>   arch/powerpc/boot/simple_alloc.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/boot/simple_alloc.c b/arch/powerpc/boot/simple_alloc.c
> index 267d6524caac..db9aaa5face3 100644
> --- a/arch/powerpc/boot/simple_alloc.c
> +++ b/arch/powerpc/boot/simple_alloc.c
> @@ -112,7 +112,9 @@ static void *simple_realloc(void *ptr, unsigned long size)
>   		return ptr;
>   
>   	new = simple_malloc(size);
> -	memcpy(new, ptr, p->size);
> +	if (new)
> +		memcpy(new, ptr, p->size);
> +
>   	simple_free(ptr);
>   	return new;
>   }