Cole Robinson <crobinso(a)redhat.com> wrote:
There's a null dereference in the storage driver when defining a
pool.
Attached patch fixes it for me.
Thanks,
Cole
diff --git a/src/storage_driver.c b/src/storage_driver.c
index 2432a9a..ac5e443 100644
--- a/src/storage_driver.c
+++ b/src/storage_driver.c
@@ -546,7 +546,7 @@ storagePoolDefine(virConnectPtr conn,
goto cleanup;
def = NULL;
- if (virStoragePoolObjSaveDef(conn, driver, pool, def) < 0) {
+ if (virStoragePoolObjSaveDef(conn, driver, pool, pool->def) < 0) {
virStoragePoolObjRemove(&driver->pools, pool);
goto cleanup;
}
Looks right, and passes this test:
qemud/libvirtd &
sleep 1
src/virsh --connect qemu:///session pool-define-as b dir c d e /f j
src/virsh --connect qemu:///session pool-dumpxml b
Whereas before the patch, running pool-define-as would
cause libvirtd to segfault.
So ACK.