Re: [libvirt] [PATCH] Fix pool define crash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Cole Robinson wrote:
> There's a null dereference in the storage driver when defining a pool.
> Attached patch fixes it for me.
> 
> 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;
>      }
> 
> 

Hm, I definitely see what you are getting at, and why the crash is there, but
I'm not sure this is totally correct.  virStoragePoolObjAssignDef() only assigns
this def to pool->def iff the storage pool is not running.  That means that if
the pool is running, and we make this change, for running pools you would always
get the old def, not the updated one.  I think we need to move the "def = NULL"
further down, but that of course will require other changes so we still have the
unified cleanup target.

-- 
Chris Lalancette

--
Libvir-list mailing list
Libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]