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

Re: [libvirt] [PATCH 35/26] snapshot: also support disks by path



On 08/19/2011 09:08 PM, Eric Blake wrote:
I got confused when 'virsh domblkinfo dom disk' required the
path to a disk (which can be ambiguous, since a single file
can back multiple disks), rather than the unambiguous target
device name that I was using in disk snapshots.  So, in true
developer fashion, I went for the best of both worlds - all
interfaces that operate on a disk (aka block) now accept
either the target name or the unambiguous path to the backing
file used by the disk.

@@ -11284,6 +11312,13 @@ virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr def,
                                   disk->file, disk->name);
              goto cleanup;
          }
+        if (STRNEQ(disk->file, def->dom->disks[idx]->dst)) {
+            VIR_FREE(disk->file);
+            if (!(disk->file = strdup(def->dom->disks[idx]->dst))) {
+                virReportOOMError();
+                goto cleanup;
+            }
+        }

I got a NULL deref in testing, and traced it to the use of the wrong field. Squash this in (I promise to post a clean v3 of the entire series once I flush out more of these little fixups).

diff --git i/src/conf/domain_conf.c w/src/conf/domain_conf.c
index aa5f2d3..effc2a3 100644
--- i/src/conf/domain_conf.c
+++ w/src/conf/domain_conf.c
@@ -11314,9 +11314,9 @@ virDomainSnapshotAlignDisks(virDomainSnapshotDefPtr def,
                                  disk->file, disk->name);
             goto cleanup;
         }
-        if (STRNEQ(disk->file, def->dom->disks[idx]->dst)) {
-            VIR_FREE(disk->file);
-            if (!(disk->file = strdup(def->dom->disks[idx]->dst))) {
+        if (STRNEQ(disk->name, def->dom->disks[idx]->dst)) {
+            VIR_FREE(disk->name);
+            if (!(disk->name = strdup(def->dom->disks[idx]->dst))) {
                 virReportOOMError();
                 goto cleanup;
             }

--
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org


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