From: Andrew Morton <akpm@linux-foundation.org>
To: fuqiang wang <fuqiang.wang@easystack.cn>
Cc: Baoquan He <bhe@redhat.com>, Vivek Goyal <vgoyal@redhat.com>,
Dave Young <dyoung@redhat.com>,
kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
Coiby Xu <coxu@redhat.com>
Subject: Re: [PATCH v4] x86/kexec: fix potential cmem->ranges out of bounds
Date: Wed, 7 May 2025 23:10:03 -0700 [thread overview]
Message-ID: <20250507231003.c11c4b90d6a2b1f6ddce792e@linux-foundation.org> (raw)
In-Reply-To: <20240108130720.228478-1-fuqiang.wang@easystack.cn>
On Mon, 8 Jan 2024 21:06:47 +0800 fuqiang wang <fuqiang.wang@easystack.cn> wrote:
> In memmap_exclude_ranges(), elfheader will be excluded from crashk_res.
> In the current x86 architecture code, the elfheader is always allocated
> at crashk_res.start. It seems that there won't be a new split range.
> But it depends on the allocation position of elfheader in crashk_res. To
> avoid potential out of bounds in future, add a extra slot.
>
> The similar issue also exists in fill_up_crash_elf_data(). The range to
> be excluded is [0, 1M], start (0) is special and will not appear in the
> middle of existing cmem->ranges[]. But in cast the low 1M could be
> changed in the future, add a extra slot too.
>
> Previously discussed link:
> [1] https://lore.kernel.org/kexec/ZXk2oBf%2FT1Ul6o0c@MiWiFi-R3L-srv/
> [2] https://lore.kernel.org/kexec/273284e8-7680-4f5f-8065-c5d780987e59@easystack.cn/
> [3] https://lore.kernel.org/kexec/ZYQ6O%2F57sHAPxTHm@MiWiFi-R3L-srv/
So.
When I merge this ancient fix against mainline, it goes OK.
When I merge Coiby's "x86/crash: pass dm crypt keys to kdump kernel"
on top of this fix, things do not go OK.
Here is what I did:
int crash_setup_memmap_entries(struct kimage *image, struct boot_params *params)
{
unsigned int nr_ranges = 0;
int i, ret = 0;
unsigned long flags;
struct e820_entry ei;
struct crash_memmap_data cmd;
struct crash_mem *cmem;
/*
* Using random kexec_buf for passing dm crypt keys may cause a range
* split. So use two slots here.
*/
nr_ranges = 2;
/*
* In the current x86 architecture code, the elfheader is always
* allocated at crashk_res.start. But it depends on the allocation
* position of elfheader in crashk_res. To avoid potential out of
* bounds in future, add a extra slot.
*/
cmem = vzalloc(struct_size(cmem, ranges, nr_ranges));
if (!cmem)
return -ENOMEM;
cmem->max_nr_ranges = nr_ranges;
cmem->nr_ranges = 0;
memset(&cmd, 0, sizeof(struct crash_memmap_data));
Please triple check this, I changed a few things.
next prev parent reply other threads:[~2025-05-08 6:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-08 13:06 [PATCH v4] x86/kexec: fix potential cmem->ranges out of bounds fuqiang wang
2024-01-09 3:46 ` Baoquan He
2025-05-08 4:25 ` Coiby Xu
2025-05-08 5:59 ` Andrew Morton
2025-05-08 7:12 ` Baoquan He
2025-05-08 7:33 ` Baoquan He
2025-05-09 4:04 ` Coiby Xu
2025-05-09 9:58 ` Baoquan He
2025-05-10 1:35 ` Andrew Morton
2025-05-11 2:19 ` Coiby Xu
2025-05-16 3:35 ` Baoquan He
2025-05-16 23:20 ` Kees Cook
2025-05-19 1:22 ` Baoquan He
2025-05-19 14:19 ` Kees Cook
2025-05-19 14:34 ` Baoquan He
2025-05-20 9:13 ` Coiby Xu
2025-05-29 2:18 ` Coiby Xu
2025-05-20 9:50 ` Coiby Xu
2025-05-11 1:52 ` Coiby Xu
2025-05-08 6:10 ` Andrew Morton [this message]
2025-05-08 7:38 ` [PATCH v5] " Baoquan He
2025-05-08 7:52 ` Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250507231003.c11c4b90d6a2b1f6ddce792e@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=coxu@redhat.com \
--cc=dyoung@redhat.com \
--cc=fuqiang.wang@easystack.cn \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=vgoyal@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox