1*4882a593SmuzhiyunFrom 2958695c4cdc785de6ed708709af071a2d20afef Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Daniel Axtens <dja@axtens.net> 3*4882a593SmuzhiyunDate: Thu, 21 Jan 2021 18:54:29 +1100 4*4882a593SmuzhiyunSubject: [PATCH] disk/lvm: Bail on missing PV list 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThere's an if block for the presence of "physical_volumes {", but if 7*4882a593Smuzhiyunthat block is absent, then p remains NULL and a NULL-deref will result 8*4882a593Smuzhiyunwhen looking for logical volumes. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunIt doesn't seem like LVM makes sense without physical volumes, so error 11*4882a593Smuzhiyunout rather than crashing. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunSigned-off-by: Daniel Axtens <dja@axtens.net> 14*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 15*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> 16*4882a593Smuzhiyun--- 17*4882a593Smuzhiyun grub-core/disk/lvm.c | 2 ++ 18*4882a593Smuzhiyun 1 file changed, 2 insertions(+) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyundiff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c 21*4882a593Smuzhiyunindex 36da575..8e560f3 100644 22*4882a593Smuzhiyun--- a/grub-core/disk/lvm.c 23*4882a593Smuzhiyun+++ b/grub-core/disk/lvm.c 24*4882a593Smuzhiyun@@ -370,6 +370,8 @@ grub_lvm_detect (grub_disk_t disk, 25*4882a593Smuzhiyun goto fail4; 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun } 28*4882a593Smuzhiyun+ else 29*4882a593Smuzhiyun+ goto fail4; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun p = grub_strstr (p, "logical_volumes {"); 32*4882a593Smuzhiyun if (p) 33*4882a593Smuzhiyun-- 34*4882a593Smuzhiyun2.14.2 35*4882a593Smuzhiyun 36