[libvirt] [PATCH 2/4] snapshot: conf: Avoid dereferencing NULL snapshot parent

Peter Krempa pkrempa at redhat.com
Mon Jan 21 10:53:27 UTC 2013


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
>




More information about the libvir-list mailing list