The 'u' modifier creates a 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@redhat.com>
---
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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Fri, Aug 30, 2019 at 04:45:03PM +0200, Peter Krempa wrote: >The 'u' modifier creates a unsigned int JSON attribute but the disk size an unsigned >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@redhat.com> >--- > src/qemu/qemu_block.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > Depending on how broken things get, qemuBlockStorageSourceGetGlusterProps might need a similar change ;) Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2026 Red Hat, Inc.