Gitweb:
http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=c8e868f6e077e7...
Commit: c8e868f6e077e733b56514fb34301e11f4a8300a
Parent: 301ac8a07cb1c043cea61eb58ea2bae42a2cbcc2
Author: Petr Rockai <me(a)mornfall.net>
AuthorDate: Sat Mar 1 00:42:09 2014 +0100
Committer: Petr Rockai <me(a)mornfall.net>
CommitterDate: Sat Mar 1 00:42:09 2014 +0100
lvmetad: Fix an invalid memory read that could cause a deadlock.
---
daemons/lvmetad/lvmetad-core.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index db05dc2..1792fc0 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -958,9 +958,13 @@ static response pv_found(lvmetad_state *s, request r)
}
if (vgid_old && (!vgid || strcmp(vgid, vgid_old))) {
+ /* make a copy, because vg_remove_if_missing will deallocate the
+ * storage behind vgid_old */
+ vgid_old = dm_strdup(vgid_old);
lock_vg(s, vgid_old);
vg_remove_if_missing(s, vgid_old, 1);
unlock_vg(s, vgid_old);
+ dm_free(vgid_old);
}
return daemon_reply_simple("OK",