From: Peter Krempa Date: Thu, 29 May 2014 14:46:38 +0000 (+0200) Subject: util: storage: Fix crash of libvirtd on network backed guest block-pull X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=4a051b807ec35d2b0aab125add19edb6d769bddb;p=libvirt.git util: storage: Fix crash of libvirtd on network backed guest block-pull For guests backed by gluster volumes (or other network storage) we don't fill the backing chain (see qemuDomainDetermineDiskChain). This leaves the "relPath" field of the top image NULL. This causes a crash in virStorageFileChainLookup() when looking up a backing element for such a disk. Since I'm working on adding support for network storage and one of the steps will make the "relPath" field optional let's use STREQ_NULLABLE instead of STREQ in virStorageFileChainLookup() to avoid the problem. --- diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 2feda67699..c9b6187fc7 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1591,7 +1591,7 @@ virStorageFileChainLookup(virStorageSourcePtr chain, if (idx == i) break; } else { - if (STREQ(name, chain->relPath)) + if (STREQ_NULLABLE(name, chain->relPath)) break; if (nameIsFile && (chain->type == VIR_STORAGE_TYPE_FILE || chain->type == VIR_STORAGE_TYPE_BLOCK)) {