[PATCH v3 01/18] qemu: block: Use correct type when creating image size JSON entries

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

 



The 'u' modifier creates an unsigned int JSON attribute but the disk size
and capacity fields are unsigned long long. If the size of the created
image would be more than 4GiB we'd overflow and create sub-4G image.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx>
---
 src/qemu/qemu_block.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index 66b1d116d8..e33aad4458 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -2034,7 +2034,7 @@ qemuBlockStorageSourceCreateGetFormatPropsGeneric(virStorageSourcePtr src,
     if (virJSONValueObjectCreate(&props,
                                  "s:driver", driver,
                                  "s:file", src->nodestorage,
-                                 "u:size", src->capacity,
+                                 "U:size", src->capacity,
                                  NULL) < 0)
         return -1;

@@ -2100,7 +2100,7 @@ qemuBlockStorageSourceCreateGetFormatPropsLUKS(virStorageSourcePtr src,
     if (virJSONValueObjectAdd(luksprops,
                               "s:driver", "luks",
                               "s:file", src->nodestorage,
-                              "u:size", src->capacity,
+                              "U:size", src->capacity,
                               NULL) < 0)
         return -1;

@@ -2153,7 +2153,7 @@ qemuBlockStorageSourceCreateGetFormatPropsQcow2(virStorageSourcePtr src,
     if (virJSONValueObjectCreate(&qcow2props,
                                  "s:driver", "qcow2",
                                  "s:file", src->nodestorage,
-                                 "u:size", src->capacity,
+                                 "U:size", src->capacity,
                                  "S:version", qcow2version,
                                  NULL) < 0)
         return -1;
@@ -2177,7 +2177,7 @@ qemuBlockStorageSourceCreateGetFormatPropsQcow(virStorageSourcePtr src,
     if (virJSONValueObjectCreate(&qcowprops,
                                  "s:driver", "qcow",
                                  "s:file", src->nodestorage,
-                                 "u:size", src->capacity,
+                                 "U:size", src->capacity,
                                  NULL) < 0)
         return -1;

@@ -2200,7 +2200,7 @@ qemuBlockStorageSourceCreateGetFormatPropsQed(virStorageSourcePtr src,
     if (virJSONValueObjectCreate(&qedprops,
                                  "s:driver", "qed",
                                  "s:file", src->nodestorage,
-                                 "u:size", src->capacity,
+                                 "U:size", src->capacity,
                                  NULL) < 0)
         return -1;

@@ -2373,7 +2373,7 @@ qemuBlockStorageSourceCreateGetStorageProps(virStorageSourcePtr src,
                                  "s:driver", driver,
                                  "S:filename", filename,
                                  "A:location", &location,
-                                 "u:size", src->physical,
+                                 "U:size", src->physical,
                                  NULL) < 0)
         return -1;

-- 
2.21.0

--
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]

  Powered by Linux