git: e2cc4bab4b00 - stable/13 - stabd/geli: Bail out if you can't get the disks size

From: Warner Losh <imp_at_FreeBSD.org>
Date: Tue, 24 Jan 2023 22:12:51 UTC
The branch stable/13 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=e2cc4bab4b001e419557c9692a918b29dd35e1e8

commit e2cc4bab4b001e419557c9692a918b29dd35e1e8
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2022-10-21 23:39:34 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-01-24 21:49:36 +0000

    stabd/geli: Bail out if you can't get the disks size
    
    If the DIOCGMEDIASIZE ioctl fails, assume the disk doesn't have geli
    encryption. While all disks should implement this, fail safe for disks /
    partitions that do not.
    
    Sponsored by:           Netflix
    
    (cherry picked from commit 787df454c8175e58131f582c05c169070fb6ca7c)
---
 stand/libsa/geli/gelidev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/stand/libsa/geli/gelidev.c b/stand/libsa/geli/gelidev.c
index 5f1143399fb3..2dd686c81883 100644
--- a/stand/libsa/geli/gelidev.c
+++ b/stand/libsa/geli/gelidev.c
@@ -302,7 +302,8 @@ geli_probe_and_attach(struct open_file *f)
 	hdesc = (struct disk_devdesc *)(f->f_devdata);
 
 	/* Get the last block number for the host provider. */
-	hdesc->dd.d_dev->dv_ioctl(f, DIOCGMEDIASIZE, &hmediasize);
+	if (hdesc->dd.d_dev->dv_ioctl(f, DIOCGMEDIASIZE, &hmediasize) != 0)
+		return;
 	hlastblk = (hmediasize / DEV_BSIZE) - 1;
 
 	/* Taste the host provider.  If it's not geli-encrypted just return. */