qemuBlockJobProcessEventCompletedPull: Avoid dangling pointer after blockpull
qemuBlockJobProcessEventCompletedPull: Avoid dangling pointer after blockpull

When doing a full block pull job (base == NULL) and the config XML
contains a compatible disk, the completer function would leave a
dangling pointer in 'cfgdisk->src->backingStore' as cfgdisk->src would
be set to the value of 'cfgbase' which was always set to
'cfgdisk->src->backingStore'.

This is wrong though since for the live definition XML we set the
respective counterpart to 'job->data.pull.base' which is NULL in the
above scenario.

This leads to a invalid pointer read when saving the config XML and may
end up in a crash.

Resolve it by setting 'cfgbase' only when 'job->data.pull.base' is
non-NULL.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1946918
Signed-off-by: Peter Krempa <2cf5c04c61aa466e4a47bfedc747d17279c72ffc@redhat.com>
Reviewed-by: Pavel Hrdina <d4772d05997b8abf035041e3b4f4996380ea7e7a@redhat.com>

libvirt/libvirt,nertpinx/libvirt,crobinso/libvirt,nertpinx/libvirt,olafhering/libvirt,olafhering/libvirt,zippy2/libvirt,libvirt/libvirt,zippy2/libvirt,crobinso/libvirt,nertpinx/libvirt,olafhering/libvirt,jfehlig/libvirt,zippy2/libvirt,libvirt/libvirt,jfehlig/libvirt,jfehlig/libvirt,jfehlig/libvirt,zippy2/libvirt,olafhering/libvirt,crobinso/libvirt,crobinso/libvirt,nertpinx/libvirt,libvirt/libvirt,nertpinx/libvirt