part: return -ENOSYS when get_info not valid.
authorschspa <schspa@gmail.com>
Wed, 20 Oct 2021 12:15:55 +0000 (20:15 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 18 Nov 2021 23:20:06 +0000 (18:20 -0500)
In some case, get_info() interface can be NULL, add this check to stop
from crash.

Signed-off-by: schspa <schspa@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
disk/part.c

index a6a8f70..fe1ebd4 100644 (file)
@@ -668,6 +668,13 @@ int part_get_info_by_name_type(struct blk_desc *dev_desc, const char *name,
        part_drv = part_driver_lookup_type(dev_desc);
        if (!part_drv)
                return -1;
+
+       if (!part_drv->get_info) {
+               log_debug("## Driver %s does not have the get_info() method\n",
+                         part_drv->name);
+               return -ENOSYS;
+       }
+
        for (i = 1; i < part_drv->max_entries; i++) {
                ret = part_drv->get_info(dev_desc, i, info);
                if (ret != 0) {