Skip to content

Commit

Permalink
lib: sbi: fwft: fix incorrect size passed to sbi_zalloc()
Browse files Browse the repository at this point in the history
The fwt_hart_state struct inciludes a flexible array member, so its
allocation size will be that of the struct itself, plus that of each
of the members in the array. When calculating this size, instead of
taking the size of the struct, the size of a pointer to it was taken,
which is incorrect. Luckily, this happenned to not produce memory
corruption because the size of the non-flexible members of the struct
is the same as the size of a pointer.

Signed-off-by: Carlos López <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
  • Loading branch information
00xc authored and avpatel committed Aug 2, 2024
1 parent baf6a75 commit cb0f475
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion lib/sbi/sbi_fwft.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ int sbi_fwft_init(struct sbi_scratch *scratch, bool cold_boot)

fhs = fwft_get_hart_state_ptr(scratch);
if (!fhs) {
fhs = sbi_zalloc(sizeof(fhs) + array_size(features) * sizeof(struct fwft_config));
fhs = sbi_zalloc(sizeof(*fhs) + array_size(features) * sizeof(struct fwft_config));
if (!fhs)
return SBI_ENOMEM;

Expand Down

0 comments on commit cb0f475

Please sign in to comment.