]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
disk/lvm: Do not allow a LV to be it's own segment's node's LV
authorDaniel Axtens <dja@axtens.net>
Fri, 22 Jan 2021 03:42:21 +0000 (14:42 +1100)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 2 Mar 2021 14:54:19 +0000 (15:54 +0100)
This prevents infinite recursion in the diskfilter verification code.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/disk/lvm.c

index 4e17b8897390a9e045c32cc4b37b8ecf6298a6ff..8257159b344593c480897f3db72e1a5c8d4a9277 100644 (file)
@@ -981,9 +981,13 @@ grub_lvm_detect (grub_disk_t disk,
                    }
                if (lv1->segments[i].nodes[j].pv == NULL)
                  for (lv2 = vg->lvs; lv2; lv2 = lv2->next)
-                   if (grub_strcmp (lv2->name,
-                                    lv1->segments[i].nodes[j].name) == 0)
-                     lv1->segments[i].nodes[j].lv = lv2;
+                   {
+                     if (lv1 == lv2)
+                       continue;
+                     if (grub_strcmp (lv2->name,
+                                      lv1->segments[i].nodes[j].name) == 0)
+                       lv1->segments[i].nodes[j].lv = lv2;
+                   }
              }
        
       }