On 10/22/12 16:04, Osier Yang wrote:
"snaps" is used after free'ed, and the additional one entry should be added to the list. --- tools/virsh-snapshot.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/virsh-snapshot.c b/tools/virsh-snapshot.c index 6dd8bf2..635edd8 100644 --- a/tools/virsh-snapshot.c +++ b/tools/virsh-snapshot.c @@ -856,9 +856,6 @@ vshSnapshotListCollect(vshControl *ctl, virDomainPtr dom, snaplist->snaps = vshCalloc(ctl, count + (tree && from), sizeof(*snaplist->snaps)); snaplist->nsnaps = count; - for (i = 0; i < count; i++) - snaplist->snaps[i].snap = snaps[i]; - VIR_FREE(snaps); if (tree) { for (i = 0; i < count; i++) { if (vshGetSnapshotParent(ctl, snaplist->snaps[i].snap,
The fix isn't 100% correct. Here vshGetSnapshotParent expects the snaplist to be populated.
A few lines behind this context, if (from) { snaps[snaplist->nsnaps++] = from; This line needs to be changed to access snaplist instead of snaps. virDomainSnapshotRef(from); } Peter -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list