summaryrefslogtreecommitdiffstats
path: root/lib/metadata/merge.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2003-08-27 15:30:39 +0000
committerAlasdair Kergon <agk@redhat.com>2003-08-27 15:30:39 +0000
commit8fd3c219fd609928f2a8609f8eb89cf27ce7acaf (patch)
tree3249dc109e8b9d23c4248bd4cb92350304b7a2aa /lib/metadata/merge.c
parentc2f387296e161489eb05afbccc81464367f7a5d3 (diff)
downloadlvm2-8fd3c219fd609928f2a8609f8eb89cf27ce7acaf.tar.gz
lvm2-8fd3c219fd609928f2a8609f8eb89cf27ce7acaf.tar.xz
lvm2-8fd3c219fd609928f2a8609f8eb89cf27ce7acaf.zip
Fix unsafe list iteration in segment merge code. [HM]
Diffstat (limited to 'lib/metadata/merge.c')
-rw-r--r--lib/metadata/merge.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index 23122f62..8b51a49f 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -46,10 +46,10 @@ static int _merge(struct lv_segment *first, struct lv_segment *second)
int lv_merge_segments(struct logical_volume *lv)
{
- struct list *segh;
+ struct list *segh, *t;
struct lv_segment *current, *prev = NULL;
- list_iterate(segh, &lv->segments) {
+ list_iterate_safe(segh, t, &lv->segments) {
current = list_item(segh, struct lv_segment);
if (_merge(prev, current))