efi_loader: QueryMode() check parameters
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 15 Jun 2019 10:52:35 +0000 (12:52 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 20 Jun 2019 22:26:15 +0000 (22:26 +0000)
Check the parameters of EFI_GRAPHICS_OUTPUT_PROTOCOL.QueryMode().

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_gop.c

index 9428c3b..c44a1cf 100644 (file)
@@ -41,14 +41,21 @@ static efi_status_t EFIAPI gop_query_mode(struct efi_gop *this, u32 mode_number,
                                          struct efi_gop_mode_info **info)
 {
        struct efi_gop_obj *gopobj;
+       efi_status_t ret = EFI_SUCCESS;
 
        EFI_ENTRY("%p, %x, %p, %p", this, mode_number, size_of_info, info);
 
+       if (!this || !size_of_info || !info || mode_number) {
+               ret = EFI_INVALID_PARAMETER;
+               goto out;
+       }
+
        gopobj = container_of(this, struct efi_gop_obj, ops);
        *size_of_info = sizeof(gopobj->info);
        *info = &gopobj->info;
 
-       return EFI_EXIT(EFI_SUCCESS);
+out:
+       return EFI_EXIT(ret);
 }
 
 static efi_status_t EFIAPI gop_set_mode(struct efi_gop *this, u32 mode_number)