[PATCH 1/1] cmd: fdt: check fdt address
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Sun Dec 31 17:31:48 CET 2023
On 12/31/23 15:22, Simon Glass wrote:
> Hi Heinrich,
>
> On Wed, Dec 20, 2023 at 5:00 PM Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
>>
>> Trying to read a device-tree from an illegal address leads to a crash.
>>
>> Check that the parameter passed to 'fdt addr' is within the RAM area and
>> non-zero.
>
> What is the motivation for this patch? Is something crashing? We don't
> do this with the 'md' command, for example.
QEMU with too little memory was crashing. But maybe we should write an
explicit warning about too little memory instead.
Best regards
Heinrich
>
> Regards,
> Simon
>
>
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>> cmd/fdt.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/cmd/fdt.c b/cmd/fdt.c
>> index 331564c13b..dc954ea7d5 100644
>> --- a/cmd/fdt.c
>> +++ b/cmd/fdt.c
>> @@ -193,6 +193,11 @@ static int do_fdt(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>> }
>>
>> addr = hextoul(argv[0], NULL);
>> + if (!addr || addr < gd->ram_base || addr >= gd->ram_top) {
>> + printf("Invalid address\n");
>> + return CMD_RET_FAILURE;
>> + }
>> +
>> blob = map_sysmem(addr, 0);
>> if ((quiet && fdt_check_header(blob)) ||
>> (!quiet && !fdt_valid(&blob)))
>> --
>> 2.40.1
>>
More information about the U-Boot
mailing list