]> sourceware.org Git - lvm2.git/commitdiff
Add some log_error msg's and fix potential segfault
authorJonathan Earl Brassow <jbrassow@redhat.com>
Thu, 11 Aug 2011 19:17:10 +0000 (19:17 +0000)
committerJonathan Earl Brassow <jbrassow@redhat.com>
Thu, 11 Aug 2011 19:17:10 +0000 (19:17 +0000)
Thanks to kabi for spotting these - especially the possibility for
segfault if a loop runs all the way through without finding a match.

lib/metadata/raid_manip.c
libdm/libdm-deptree.c

index 59c2e10eee5225c19205448c2a0f8414e921524b..1a8726a4ac6005e05f95cf0b8dce368a372daf3e 100644 (file)
@@ -179,16 +179,20 @@ static int _shift_and_rename_image_components(struct lv_segment *seg)
 
                /* Alter rmeta name */
                shift_name = dm_pool_strdup(cmd->mem, seg_metalv(seg, s)->name);
-               if (!shift_name)
-                       return_0;
+               if (!shift_name) {
+                       log_error("Memory allocation failed.");
+                       return 0;
+               }
                len = strlen(shift_name) - 1;
                shift_name[len] -= missing;
                seg_metalv(seg, s)->name = shift_name;
 
                /* Alter rimage name */
                shift_name = dm_pool_strdup(cmd->mem, seg_lv(seg, s)->name);
-               if (!shift_name)
-                       return_0;
+               if (!shift_name) {
+                       log_error("Memory allocation failed.");
+                       return 0;
+               }
                len = strlen(shift_name) - 1;
                shift_name[len] -= missing;
                seg_lv(seg, s)->name = shift_name;
index ca609ee957b34640155f702ac557b185d44c2471..c8e6c7ff76d33d4c5115c0506836dbd115f0a8fa 100644 (file)
@@ -2356,6 +2356,9 @@ int dm_tree_node_add_raid_target(struct dm_tree_node *node,
                                                 dm_segtypes[i].type, size)))
                                return_0;
 
+       if (!seg)
+               return_0;
+
        seg->region_size = region_size;
        seg->stripe_size = stripe_size;
        seg->area_count = 0;
This page took 0.044204 seconds and 5 git commands to generate.