qemu: do not leak NBD disk data in migration cookie
qemu: do not leak NBD disk data in migration cookie

Valgrind complained:

==18990== 20 (16 direct, 4 indirect) bytes in 1 blocks are definitely lost in loss record 188 of 996
==18990==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
==18990==    by 0x5292E9B: virAllocN (viralloc.c:191)
==18990==    by 0x2221E731: qemuMigrationCookieXMLParseStr (qemu_migration.c:1012)
==18990==    by 0x2221F390: qemuMigrationEatCookie (qemu_migration.c:1413)
==18990==    by 0x222228CE: qemuMigrationPrepareAny (qemu_migration.c:3463)
==18990==    by 0x22224121: qemuMigrationPrepareDirect (qemu_migration.c:3865)
==18990==    by 0x22251C25: qemuDomainMigratePrepare3Params (qemu_driver.c:12414)
==18990==    by 0x5389EE0: virDomainMigratePrepare3Params (libvirt-domain.c:5107)
==18990==    by 0x1278DB: remoteDispatchDomainMigratePrepare3ParamsHelper (remote.c:5425)
==18990==    by 0x53FF287: virNetServerProgramDispatch (virnetserverprogram.c:437)
==18990==    by 0x540523D: virNetServerProcessMsg (virnetserver.c:135)
==18990==    by 0x54052C7: virNetServerHandleJob (virnetserver.c:156)
==18990==
==18990== 20 (16 direct, 4 indirect) bytes in 1 blocks are definitely lost in loss record 189 of 996
==18990==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
==18990==    by 0x5292E9B: virAllocN (viralloc.c:191)
==18990==    by 0x2221E731: qemuMigrationCookieXMLParseStr (qemu_migration.c:1012)
==18990==    by 0x2221F390: qemuMigrationEatCookie (qemu_migration.c:1413)
==18990==    by 0x222249D2: qemuMigrationRun (qemu_migration.c:4395)
==18990==    by 0x22226365: doNativeMigrate (qemu_migration.c:4693)
==18990==    by 0x22228E45: qemuMigrationPerform (qemu_migration.c:5553)
==18990==    by 0x2225144B: qemuDomainMigratePerform3Params (qemu_driver.c:12621)
==18990==    by 0x539F5D8: virDomainMigratePerform3Params (libvirt-domain.c:5206)
==18990==    by 0x127305: remoteDispatchDomainMigratePerform3ParamsHelper (remote.c:5557)
==18990==    by 0x53FF287: virNetServerProgramDispatch (virnetserverprogram.c:437)
==18990==    by 0x540523D: virNetServerProcessMsg (virnetserver.c:135)

If we're replacing the NBD data, it's simplest to free the old object
(including the disk list) and allocate a new one.

Signed-off-by: Michael Chapman <a17fed27eaa842282862ff7c1b9c8395a26ac320@very.puzzling.org>

jardasgit/libvirt,zippy2/libvirt,taget/libvirt,eskultety/libvirt,jardasgit/libvirt,datto/libvirt,fabianfreyer/libvirt,eskultety/libvirt,andreabolognani/libvirt,VenkatDatta/libvirt,andreabolognani/libvirt,zippy2/libvirt,rlaager/libvirt,jfehlig/libvirt,crobinso/libvirt,jfehlig/libvirt,crobinso/libvirt,fabianfreyer/libvirt,rlaager/libvirt,nertpinx/libvirt,jardasgit/libvirt,VenkatDatta/libvirt,jardasgit/libvirt,fabianfreyer/libvirt,crobinso/libvirt,datto/libvirt,VenkatDatta/libvirt,andreabolognani/libvirt,rlaager/libvirt,libvirt/libvirt,zippy2/libvirt,libvirt/libvirt,jfehlig/libvirt,fabianfreyer/libvirt,taget/libvirt,datto/libvirt,VenkatDatta/libvirt,eskultety/libvirt,datto/libvirt,crobinso/libvirt,andreabolognani/libvirt,jardasgit/libvirt,eskultety/libvirt,andreabolognani/libvirt,taget/libvirt,nertpinx/libvirt,nertpinx/libvirt,rlaager/libvirt,nertpinx/libvirt,eskultety/libvirt,fabianfreyer/libvirt,libvirt/libvirt,nertpinx/libvirt,jfehlig/libvirt,taget/libvirt,VenkatDatta/libvirt,rlaager/libvirt,olafhering/libvirt,zippy2/libvirt,libvirt/libvirt,datto/libvirt,olafhering/libvirt,taget/libvirt,olafhering/libvirt,olafhering/libvirt