diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-16 16:59:00 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-16 16:59:33 +0000 |
| commit | 9aba81d8eb048db908c94a3c40c25a5fde0caee6 (patch) | |
| tree | b765e7fb5e9a3c2143c68b0414e0055adb70e785 /results/classifier/118/all/2772 | |
| parent | b89a938452613061c0f1f23e710281cf5c83cb29 (diff) | |
| download | qemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.tar.gz qemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.zip | |
add 18th iteration of classifier
Diffstat (limited to 'results/classifier/118/all/2772')
| -rw-r--r-- | results/classifier/118/all/2772 | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/results/classifier/118/all/2772 b/results/classifier/118/all/2772 new file mode 100644 index 000000000..33f80065b --- /dev/null +++ b/results/classifier/118/all/2772 @@ -0,0 +1,104 @@ +peripherals: 0.927 +vnc: 0.906 +risc-v: 0.905 +TCG: 0.900 +user-level: 0.899 +KVM: 0.897 +performance: 0.894 +hypervisor: 0.892 +socket: 0.889 +graphic: 0.889 +debug: 0.887 +x86: 0.883 +device: 0.875 +assembly: 0.874 +register: 0.870 +ppc: 0.869 +semantic: 0.863 +permissions: 0.862 +VMM: 0.858 +virtual: 0.857 +architecture: 0.841 +arm: 0.804 +boot: 0.771 +mistranslation: 0.760 +kernel: 0.753 +PID: 0.751 +files: 0.737 +i386: 0.720 +network: 0.705 + +qemu-img map command omits `offset` key in output for encrypted qcow2 files +Description of problem: +We use the `qemu-img map` command to retrieve metadata information from a qcow2 image. It functions as expected for non-encrypted qcow2 images. However, when the same command is executed on an encrypted qcow2 image, the output omits the `offset` key, which is critical for subsequent processing in our workflow. +Steps to reproduce: +1. Run qemu-img map on the encrypted incremental qcow2: +Command: + +``` + qemu-img map --object secret,id=sec0,data=trilio --output json -U --image-opts driver=qcow2,file.filename=incremental.qcow2,encrypt.format=luks,encrypt.key-secret=sec0 +``` +**Observed Output:** The command executes but does not include the offset key in the JSON output. +For example: +``` +[{ "start": 32191217664, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32191283200, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32193314816, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32193380352, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32195411968, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32195477504, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32197509120, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32197574656, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32199606272, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32199671808, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32201703424, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32201768960, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32203800576, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32203866112, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32205897728, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32205963264, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32207994880, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32208060416, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32210092032, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}, +{ "start": 32210157568, "length": 2031616, "depth": 1, "present": false, "zero": true, "data": false}, +{ "start": 32212189184, "length": 65536, "depth": 1, "present": true, "zero": false, "data": true}] +``` + +2. Decrypt the same encrypted incremental qcow2 image and re-run the qemu-img map command: +**Decryption command:** +``` +qemu-img convert -t writeback --object secret,id=sec0,data=trilio -O qcow2 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=incremental.qcow2 decrypt.qcow2 +``` +3. Run qemu-img map on the decrypted image: +**Command:** +``` +qemu-img map --output json -U decrypt.qcow2 +``` +Here, we don't need to pass the encryption key as we have already decrypted the qcow2. + +**Observed Output:** The JSON output includes the offset key as expected. Example: +``` +[{ "start": 0, "length": 106954752, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 106954752, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "offset": 327680}, +{ "start": 109051904, "length": 786432000, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 895483904, "length": 2097152, "depth": 0, "present": true, "zero": false, "data": true, "offset": 2490368}, +{ "start": 897581056, "length": 1866924032, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 2764505088, "length": 1638400, "depth": 0, "present": true, "zero": false, "data": true, "offset": 4653056}, +{ "start": 2766143488, "length": 402587648, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 3168731136, "length": 2162688, "depth": 0, "present": true, "zero": false, "data": true, "offset": 6291456}, +{ "start": 3170893824, "length": 140443648, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 3311337472, "length": 54394880, "depth": 0, "present": true, "zero": false, "data": true, "offset": 8519680}, +{ "start": 3365732352, "length": 2056388608, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 5422120960, "length": 1114112, "depth": 0, "present": true, "zero": false, "data": true, "offset": 62980096}, +{ "start": 5423235072, "length": 4128768, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 5427363840, "length": 2162688, "depth": 0, "present": true, "zero": false, "data": true, "offset": 64094208}, +{ "start": 5429526528, "length": 469696512, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 5899223040, "length": 2162688, "depth": 0, "present": true, "zero": false, "data": true, "offset": 66256896}, +{ "start": 5901385728, "length": 90112000, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 5991497728, "length": 1638400, "depth": 0, "present": true, "zero": false, "data": true, "offset": 68485120}, +{ "start": 5993136128, "length": 2086600704, "depth": 0, "present": false, "zero": true, "data": false}, +{ "start": 8079736832, "length": 2686976, "depth": 0, "present": true, "zero": false, "data": true, "offset": 70189056}, +{ "start": 8082423808, "length": 24129830912, "depth": 0, "present": false, "zero": true, "data": false}] +``` + +The missing `offset` key in the output of the `qemu-img map` command for encrypted qcow2 images disrupts downstream processes that rely on this metadata. |