efi_loader: add protection for block_dev
authorPatrick Delaunay <patrick.delaunay@st.com>
Wed, 10 Apr 2019 09:02:58 +0000 (11:02 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 12 Apr 2019 20:00:42 +0000 (22:00 +0200)
Check the value of block_dev before to use this pointer.

This patch solves problem for the command "load" when ubifs
is previously mounted: in this case the function
blk_get_device_part_str("ubi 0") don't return error but return
block_dev = NULL and then data abort.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_device_path.c

index 1b08ca8f620a95111edd8bb049b693869b1f9c07..d8c052d6ec50f743642ac375513ca821a499fa30 100644 (file)
@@ -968,7 +968,7 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
        if (!is_net) {
                part = blk_get_device_part_str(dev, devnr, &desc, &fs_partition,
                                               1);
-               if (part < 0)
+               if (part < 0 || !desc)
                        return EFI_INVALID_PARAMETER;
 
                if (device)