[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] loongarch: Avoid undefined behavior when popping from an emp
From: |
Xiaotian Wu |
Subject: |
Re: [PATCH] loongarch: Avoid undefined behavior when popping from an empty reloc stack |
Date: |
Thu, 18 May 2023 11:07:11 +0800 |
User-agent: |
Evolution 3.46.4 |
LGTM, thank you.
在 2023-05-18星期四的 10:52 +0800,WANG Xuerui写道:
> The return value of grub_loongarch64_stack_pop is unsigned, so -1
> should
> not be used in the first place. Replacing with 0 is enough to avoid
> the
> UB in this edge case.
>
> Technically though, proper error handling is needed throughout the
> management of the reloc stack, so no unexpected behavior will happen
> even in case of malformed object code input (right now, pushes become
> no-ops when the stack is full, and garbage results if the stack does
> not
> contain enough operands for an op). The refactor would touch some
> more
> places so would be best done in a separate series.
>
> Fixes: CID 407777
> Fixes: CID 407778
>
> Signed-off-by: WANG Xuerui <git@xen0n.name>
> ---
> grub-core/kern/loongarch64/dl_helper.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/grub-core/kern/loongarch64/dl_helper.c b/grub-
> core/kern/loongarch64/dl_helper.c
> index e8ec1219f..cda1a53c8 100644
> --- a/grub-core/kern/loongarch64/dl_helper.c
> +++ b/grub-core/kern/loongarch64/dl_helper.c
> @@ -46,7 +46,7 @@ static grub_uint64_t
> grub_loongarch64_stack_pop (grub_loongarch64_stack_t stack)
> {
> if (stack->top == -1)
> - return -1;
> + return 0;
> return stack->data[stack->top--];
> }
>
--
Best Regards
Xiaotian Wu