
On 01/21/13 11:45, Jiri Denemark wrote:
On Thu, Jan 17, 2013 at 14:12:03 +0100, Peter Krempa wrote:
virDomainSnapshotDropParent tried to dereference the parent even in case the snapshot didn't have a parent. This should not be possible as the snapshots use metaroot now, but bugs may induce this failure. --- src/conf/snapshot_conf.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 0c5b005..c3a8494 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -995,6 +995,9 @@ virDomainSnapshotDropParent(virDomainSnapshotObjPtr snapshot) virDomainSnapshotObjPtr prev = NULL; virDomainSnapshotObjPtr curr = NULL;
+ if (!snapshot || !snapshot->parent) + return; + snapshot->parent->nchildren--; curr = snapshot->parent->first_child; while (curr != snapshot) {
I'm slightly against this patch as I prefer a crashing daemon to silent propagation of bug.
Hm, yeah. I agree. The snapshot metaroot patch that caused this problem expects that all snapshots except the metaroot have parents so this may disclose other potential bugs. Peter
Jirka