2023-06-13 20:37:42

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] s390/crash: Use the correct type for memory allocation

get_elfcorehdr_size() returns a size_t, so there is no real point to
store it in a u32.

Turn 'alloc_size' into a size_t.

Signed-off-by: Christophe JAILLET <[email protected]>
---
Not sure if 'alloc_size' can overflow in real life application, but using
the correct type looks harmless.

Should it be a real fix, either:
Fixes: 8cce437fbb5c ("s390/kdump: Fix elfcorehdr size calculation")
or
Fixes: 60a0c68df263 ("[S390] kdump backend code")
---
arch/s390/kernel/crash_dump.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c
index 8a617be28bb4..7af69948b290 100644
--- a/arch/s390/kernel/crash_dump.c
+++ b/arch/s390/kernel/crash_dump.c
@@ -568,9 +568,9 @@ static size_t get_elfcorehdr_size(int mem_chunk_cnt)
int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size)
{
Elf64_Phdr *phdr_notes, *phdr_loads;
+ size_t alloc_size;
int mem_chunk_cnt;
void *ptr, *hdr;
- u32 alloc_size;
u64 hdr_off;

/* If we are not in kdump or zfcp/nvme dump mode return */
--
2.34.1



2023-06-14 14:36:15

by Alexander Gordeev

[permalink] [raw]
Subject: Re: [PATCH] s390/crash: Use the correct type for memory allocation

On Tue, Jun 13, 2023 at 10:30:28PM +0200, Christophe JAILLET wrote:
> get_elfcorehdr_size() returns a size_t, so there is no real point to
> store it in a u32.
>
> Turn 'alloc_size' into a size_t.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> Not sure if 'alloc_size' can overflow in real life application, but using
> the correct type looks harmless.
>
> Should it be a real fix, either:
> Fixes: 8cce437fbb5c ("s390/kdump: Fix elfcorehdr size calculation")
> or
> Fixes: 60a0c68df263 ("[S390] kdump backend code")
> ---
> arch/s390/kernel/crash_dump.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c
> index 8a617be28bb4..7af69948b290 100644
> --- a/arch/s390/kernel/crash_dump.c
> +++ b/arch/s390/kernel/crash_dump.c
> @@ -568,9 +568,9 @@ static size_t get_elfcorehdr_size(int mem_chunk_cnt)
> int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size)
> {
> Elf64_Phdr *phdr_notes, *phdr_loads;
> + size_t alloc_size;
> int mem_chunk_cnt;
> void *ptr, *hdr;
> - u32 alloc_size;
> u64 hdr_off;
>
> /* If we are not in kdump or zfcp/nvme dump mode return */

Applied, thanks!