efi_loader: check return value of part_get_info()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 27 May 2023 06:18:28 +0000 (08:18 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 2 Jun 2023 08:59:15 +0000 (10:59 +0200)
part_get_info() may return an error code. Check it.
Update function description of dp_part_node().

Addresses-Coverity-ID: 184067 ("Unchecked return value")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
lib/efi_loader/efi_device_path.c

index 71923b1..04ebb44 100644 (file)
@@ -843,12 +843,17 @@ static unsigned dp_part_size(struct blk_desc *desc, int part)
  * @buf                buffer to which the device path is written
  * @desc       block device descriptor
  * @part       partition number, 0 identifies a block device
+ *
+ * Return:     pointer to position after the node
  */
 static void *dp_part_node(void *buf, struct blk_desc *desc, int part)
 {
        struct disk_partition info;
+       int ret;
 
-       part_get_info(desc, part, &info);
+       ret = part_get_info(desc, part, &info);
+       if (ret < 0)
+               return buf;
 
        if (desc->part_type == PART_TYPE_ISO) {
                struct efi_device_path_cdrom_path *cddp = buf;