 bd385a5298
			
		
	
	
		bd385a5298
		
	
	
	
	
		
			
			One use case for 'qemu-img info' is verifying that untrusted images don't reference an unwanted external file, be it as a backing file or an external data file. To make sure that calling 'qemu-img info' can't already have undesired side effects with a malicious image, just don't open the data file at all with BDRV_O_NO_IO. If nothing ever tries to do I/O, we don't need to have it open. This changes the output of iotests case 061, which used 'qemu-img info' to show that opening an image with an invalid data file fails. After this patch, it succeeds. Replace this part of the test with a qemu-io call, but keep the final 'qemu-img info' to show that the invalid data file is correctly displayed in the output. Fixes: CVE-2024-4467 Cc: qemu-stable@nongnu.org Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
		
			
				
	
	
		
			628 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			628 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| QA output created by 061
 | |
| 
 | |
| === Testing version downgrade with zero expansion ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       [0]
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| magic                     0x514649fb
 | |
| version                   2
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             72
 | |
| 
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing version downgrade with zero expansion and 4K cache entries ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 131072/131072 bytes at offset 33554432
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 128 KiB (0x20000) bytes     allocated at offset 0 bytes (0x0)
 | |
| 31.875 MiB (0x1fe0000) bytes not allocated at offset 128 KiB (0x20000)
 | |
| 128 KiB (0x20000) bytes     allocated at offset 32 MiB (0x2000000)
 | |
| 31.875 MiB (0x1fe0000) bytes not allocated at offset 32.125 MiB (0x2020000)
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       [0]
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| magic                     0x514649fb
 | |
| version                   2
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             72
 | |
| 
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 131072/131072 bytes at offset 33554432
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 64 MiB (0x4000000) bytes not allocated at offset 0 bytes (0x0)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing dirty version downgrade ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| ./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     [0]
 | |
| compatible_features       [0]
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| ERROR cluster 5 refcount=0 reference=1
 | |
| ERROR cluster 6 refcount=0 reference=1
 | |
| Rebuilding refcount structure
 | |
| Repairing cluster 1 refcount=1 reference=0
 | |
| Repairing cluster 2 refcount=1 reference=0
 | |
| magic                     0x514649fb
 | |
| version                   2
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x80000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             72
 | |
| 
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing version downgrade with unknown compat/autoclear flags ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       [42]
 | |
| autoclear_features        [42]
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| magic                     0x514649fb
 | |
| version                   2
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             72
 | |
| 
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing version upgrade and resize ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 65536/65536 bytes at offset 44040192
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| magic                     0x514649fb
 | |
| version                   2
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             72
 | |
| 
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      134217728
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       [0]
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| read 65536/65536 bytes at offset 44040192
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing resize with snapshots ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=33554432
 | |
| wrote 65536/65536 bytes at offset 25165824
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| qemu-img: Can't resize a v2 image which has snapshots
 | |
| version                   2
 | |
| size                      33554432
 | |
| nb_snapshots              1
 | |
| version                   3
 | |
| size                      134217728
 | |
| nb_snapshots              1
 | |
| Image resized.
 | |
| version                   3
 | |
| size                      67108864
 | |
| nb_snapshots              2
 | |
| qemu-img: Internal snapshots prevent downgrade of image
 | |
| version                   3
 | |
| size                      33554432
 | |
| nb_snapshots              2
 | |
| version                   3
 | |
| size                      134217728
 | |
| nb_snapshots              2
 | |
| version                   2
 | |
| size                      33554432
 | |
| nb_snapshots              1
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing dirty lazy_refcounts=off ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| ./common.rc: Killed                  ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x10000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     [0]
 | |
| compatible_features       [0]
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| ERROR cluster 5 refcount=0 reference=1
 | |
| ERROR cluster 6 refcount=0 reference=1
 | |
| Rebuilding refcount structure
 | |
| Repairing cluster 1 refcount=1 reference=0
 | |
| Repairing cluster 2 refcount=1 reference=0
 | |
| magic                     0x514649fb
 | |
| version                   3
 | |
| backing_file_offset       0x0
 | |
| backing_file_size         0x0
 | |
| cluster_bits              16
 | |
| size                      67108864
 | |
| crypt_method              0
 | |
| l1_size                   1
 | |
| l1_table_offset           0x30000
 | |
| refcount_table_offset     0x80000
 | |
| refcount_table_clusters   1
 | |
| nb_snapshots              0
 | |
| snapshot_offset           0x0
 | |
| incompatible_features     []
 | |
| compatible_features       []
 | |
| autoclear_features        []
 | |
| refcount_order            4
 | |
| header_length             112
 | |
| 
 | |
| Header extension:
 | |
| magic                     0x6803f857 (Feature table)
 | |
| length                    384
 | |
| data                      <binary>
 | |
| 
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing backing file ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| qemu-img: Cannot amend the backing file
 | |
| You can use 'qemu-img rebase' instead.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing invalid configurations ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| qemu-img: Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
 | |
| qemu-img: Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
 | |
| qemu-img: Unknown compatibility level 0.42
 | |
| qemu-img: Invalid parameter 'foo'
 | |
| qemu-img: Invalid parameter 'cluster_size'
 | |
| This option is only supported for image creation
 | |
| qemu-img: Invalid parameter 'encryption'
 | |
| This option is only supported for image creation
 | |
| qemu-img: Invalid parameter 'preallocation'
 | |
| This option is only supported for image creation
 | |
| 
 | |
| === Testing correct handling of unset value ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| Should work:
 | |
| Should not work:
 | |
| qemu-img: Invalid parameter 'cluster_size'
 | |
| This option is only supported for image creation
 | |
| 
 | |
| === Testing zero expansion on inactive clusters ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing zero expansion on shared L2 table ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing zero expansion on backed image ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 65536/65536 bytes at offset 65536
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing zero expansion on backed inactive clusters ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
 | |
| wrote 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 65536/65536 bytes at offset 65536
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing zero expansion on backed image with shared L2 table ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
 | |
| wrote 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 131072/131072 bytes at offset 0
 | |
| 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing preallocated zero expansion on full image ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| wrote 67108864/67108864 bytes at offset 0
 | |
| 64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 67108864/67108864 bytes at offset 0
 | |
| 64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| No errors were found on the image.
 | |
| read 67108864/67108864 bytes at offset 0
 | |
| 64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| 
 | |
| === Testing progress report without snapshot ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
 | |
| wrote 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 1073741824
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 2147483648
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 3221225472
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
|     (0.00/100%)
 | |
|     (12.50/100%)
 | |
|     (25.00/100%)
 | |
|     (37.50/100%)
 | |
|     (50.00/100%)
 | |
|     (62.50/100%)
 | |
|     (75.00/100%)
 | |
|     (87.50/100%)
 | |
|     (100.00/100%)
 | |
|     (100.00/100%)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing progress report with snapshot ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
 | |
| wrote 65536/65536 bytes at offset 0
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 1073741824
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 2147483648
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 65536/65536 bytes at offset 3221225472
 | |
| 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
|     (0.00/100%)
 | |
|     (6.25/100%)
 | |
|     (12.50/100%)
 | |
|     (18.75/100%)
 | |
|     (25.00/100%)
 | |
|     (31.25/100%)
 | |
|     (37.50/100%)
 | |
|     (43.75/100%)
 | |
|     (50.00/100%)
 | |
|     (56.25/100%)
 | |
|     (62.50/100%)
 | |
|     (68.75/100%)
 | |
|     (75.00/100%)
 | |
|     (81.25/100%)
 | |
|     (87.50/100%)
 | |
|     (93.75/100%)
 | |
|     (100.00/100%)
 | |
|     (100.00/100%)
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing version downgrade with external data file ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IMGFMT.data
 | |
| qemu-img: Cannot downgrade an image with a data file
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file: TEST_DIR/t.IMGFMT.data
 | |
|     data file raw: false
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| No errors were found on the image.
 | |
| 
 | |
| === Testing version downgrade with extended L2 entries ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| qemu-img: Cannot downgrade an image with incompatible features 0x10 set
 | |
| 
 | |
| === Try changing the external data file ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| qemu-img: data-file can only be set for images that use an external data file
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IMGFMT.data
 | |
| qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not open 'foo': No such file or directory
 | |
| read 4096/4096 bytes at offset 0
 | |
| 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file: foo
 | |
|     data file raw: false
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| 
 | |
| qemu-io: can't open device TEST_DIR/t.IMGFMT: 'data-file' is required for this image
 | |
| read 4096/4096 bytes at offset 0
 | |
| 4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file raw: false
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| 
 | |
| === Clearing and setting data-file-raw ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 data_file=TEST_DIR/t.IMGFMT.data data_file_raw=on
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file: TEST_DIR/t.IMGFMT.data
 | |
|     data file raw: true
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| No errors were found on the image.
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file: TEST_DIR/t.IMGFMT.data
 | |
|     data file raw: false
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| No errors were found on the image.
 | |
| qemu-img: data-file-raw cannot be set on existing images
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64 MiB (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     compression type: COMPRESSION_TYPE
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     data file: TEST_DIR/t.IMGFMT.data
 | |
|     data file raw: false
 | |
|     corrupt: false
 | |
|     extended l2: false
 | |
| No errors were found on the image.
 | |
| *** done
 |