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
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to