mirror of
git://sourceware.org/git/lvm2.git
synced 2025-04-01 18:50:41 +03:00
Free allocated segment type in error path
This commit is contained in:
parent
1ef10bd81a
commit
a980f56d2a
@ -452,8 +452,10 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
|
||||
|
||||
do {
|
||||
if ((segtype = raid_segtype_fn[i](cmd)) &&
|
||||
!lvm_register_segtype(seglib, segtype))
|
||||
return 0;
|
||||
!lvm_register_segtype(seglib, segtype)) {
|
||||
dm_free(segtype);
|
||||
return_0;
|
||||
}
|
||||
} while (raid_segtype_fn[++i]);
|
||||
|
||||
return 1;
|
||||
|
@ -772,8 +772,10 @@ int init_multiple_segtype(struct cmd_context *cmd, struct segtype_library *segli
|
||||
segtype->private = NULL;
|
||||
segtype->flags = SEG_REPLICATOR;
|
||||
|
||||
if (!lvm_register_segtype(seglib, segtype))
|
||||
if (!lvm_register_segtype(seglib, segtype)) {
|
||||
dm_free(segtype);
|
||||
return_0;
|
||||
}
|
||||
|
||||
log_very_verbose("Initialised segtype: " REPLICATOR_MODULE);
|
||||
|
||||
@ -785,8 +787,10 @@ int init_multiple_segtype(struct cmd_context *cmd, struct segtype_library *segli
|
||||
segtype->private = NULL;
|
||||
segtype->flags = SEG_REPLICATOR_DEV;
|
||||
|
||||
if (!lvm_register_segtype(seglib, segtype))
|
||||
if (!lvm_register_segtype(seglib, segtype)) {
|
||||
dm_free(segtype);
|
||||
return_0;
|
||||
}
|
||||
|
||||
log_very_verbose("Initialised segtype: " REPLICATOR_DEV_MODULE);
|
||||
|
||||
|
@ -606,8 +606,10 @@ int init_multiple_segtypes(struct cmd_context *cmd, struct segtype_library *segl
|
||||
segtype->flags |= SEG_MONITORED;
|
||||
# endif /* DMEVENTD */
|
||||
#endif
|
||||
if (!lvm_register_segtype(seglib, segtype))
|
||||
if (!lvm_register_segtype(seglib, segtype)) {
|
||||
dm_free(segtype);
|
||||
return_0;
|
||||
}
|
||||
|
||||
log_very_verbose("Initialised segtype: %s", segtype->name);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user