diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index b5f25473f..b23490c92 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -843,6 +843,9 @@ read_device (grub_uint64_t sector, struct grub_zfs_device_desc *desc, { grub_err_t err; unsigned i; + if (desc->n_children <= 0) + return grub_error (GRUB_ERR_BAD_FS, + "non-positive number of mirror children"); for (i = 0; i < desc->n_children; i++) { err = read_device (sector, &desc->children[i],