[PATCH v2] efi_loader: initialize return values in efi_uninstall_multiple_protocol_interfaces_int()
Ilias Apalodimas
ilias.apalodimas at linaro.org
Thu Nov 10 09:18:23 CET 2022
Hi Heinrich
On Thu, 10 Nov 2022 at 10:15, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 11/10/22 09:11, Ilias Apalodimas wrote:
> > If the va_list we got handed over contains no protocols we must return
> > EFI_SUCCESS. However in that case the current code just returns
> > an uninitialized value.
> > Fix that by setting the return value in the variable definition
> >
> > Addresses-Coverity: CID 376195: ("Uninitialized variables (UNINIT)")
> > Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> > ---
> > changes since v1:
> > - return EFI_SUCCESS instead of EFI_INVALID_PARAMETER
> >
> > lib/efi_loader/efi_boottime.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
> > index a56021559bbf..f52d086d17bf 100644
> > --- a/lib/efi_loader/efi_boottime.c
> > +++ b/lib/efi_loader/efi_boottime.c
> > @@ -2754,7 +2754,7 @@ efi_uninstall_multiple_protocol_interfaces_int(efi_handle_t handle,
> > {
> > const efi_guid_t *protocol;
> > void *protocol_interface;
> > - efi_status_t ret;
> > + efi_status_t ret = EFI_SUCCESS;
>
> OK
>
> > size_t i = 0;
> > efi_va_list argptr_copy;
> >
> > @@ -2765,7 +2765,7 @@ efi_uninstall_multiple_protocol_interfaces_int(efi_handle_t handle,
> > for (;;) {
> > protocol = efi_va_arg(argptr, efi_guid_t*);
> > if (!protocol)
> > - break;
> > + goto out;
>
> You may reach this point after actually uninstalling protocols. You have
> to check if the last protocol is uninstalled. Please, drop this change.
Yes good catch. Let me send a v3
Thanks
/Ilias
>
> Best regards
>
> Heinrich
>
> > protocol_interface = efi_va_arg(argptr, void*);
> > ret = efi_uninstall_protocol(handle, protocol,
> > protocol_interface);
>
More information about the U-Boot
mailing list