[PATCH v2 3/9] bloblist: refactor of bloblist_reloc()
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Dec 22 16:45:29 CET 2023
Hi Raymond,
On Fri, 22 Dec 2023 at 17:30, Raymond Mao <raymond.mao at linaro.org> wrote:
>
> Hi Ilias,
>
> On Fri, 22 Dec 2023 at 06:12, Ilias Apalodimas <ilias.apalodimas at linaro.org> wrote:
>>
>> Hi Raymond,
>>
>> On Thu, 21 Dec 2023 at 02:41, Raymond Mao <raymond.mao at linaro.org> wrote:
>> >
>> > The current bloblist pointer and size can be retrieved from global
>> > data, so we don't need to pass them from the function arguments.
>> > This change also help to remove all external access of gd->bloblist
>> > outside of bloblist module.
>> >
>> > Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
>> > ---
>>
>> [...]
>>
>> > }
>> > }
>> >
>> > -void bloblist_reloc(void *to, uint to_size, void *from, uint from_size)
>> > +void bloblist_reloc(void *to, uint to_size)
>> > {
>> > struct bloblist_hdr *hdr;
>> >
>> > - memcpy(to, from, from_size);
>> > + memcpy(to, gd->bloblist, gd->bloblist->total_size);
>> > hdr = to;
>> > - hdr->total_size = to_size;
>> > + if (to_size < gd->bloblist->total_size)
>>
>> What's the size of *to? Is it equal to to_size?
>> Because if to_size can be smaller that gd->bloblist->total_size the
>> memcpy above is wrong
>
> to_size should be 0 (use the total_size) or a value larger than total_size.
> I think I should keep the below line from the function header.
The point here is, are we certain that the *to is big enough? Or we'll
end up overflowing ?
Thanks
/Ilias
> >> - * @to_size: New size for bloblist (must be larger than from_size)
> I will refactor this part.
>
>>
>> > + hdr->total_size = gd->bloblist->total_size;
>> > + else
>> > + hdr->total_size = to_size;
>> > + gd->bloblist = to;
>> > }
>> >
>> > int bloblist_init(void)
>> > diff --git a/common/board_f.c b/common/board_f.c
>> > index d4d7d01f8f..00b0430889 100644
>> > --- a/common/board_f.c
>>
>> [...]
>>
>> /Ilias
More information about the U-Boot
mailing list