
[...]
unsigned sz2 = efi_dp_size(dp2);
size_t sz1;
size_t sz2 = efi_dp_size(dp2); void *p;
if (split_end_node < sizeof(struct efi_device_path))
Can we be more explicit here pls? Someone might misuse this in the future split_end_node < =1 ? And we can document we can use values up to sizeof(struct efi_device_path) if we ever need extra functionality
size_t split_end_node cannot be negative.
The case split_end_node == 0 is handled below. What are you missing?
someone misusing it and passing a value of '3' for example and print an error if the value is 1 < value < sizeof(struct efi_device_path)
Thanks /Ilias
Best regards
Heinrich
sz1 = efi_dp_size(dp1);
else
sz1 = split_end_node;
if (split_end_node) end_size = 2 * sizeof(END); else
diff --git a/lib/efi_loader/efi_device_path_utilities.c b/lib/efi_loader/efi_device_path_utilities.c index c95dbfa9b5f..ac250bbfcc9 100644 --- a/lib/efi_loader/efi_device_path_utilities.c +++ b/lib/efi_loader/efi_device_path_utilities.c @@ -76,7 +76,7 @@ static struct efi_device_path * EFIAPI append_device_path( const struct efi_device_path *src2) { EFI_ENTRY("%pD, %pD", src1, src2);
return EFI_EXIT(efi_dp_concat(src1, src2, false));
return EFI_EXIT(efi_dp_concat(src1, src2, 0));
}
/*
-- 2.43.0
Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org