qcow2: avoid misaligned 64bit bswap
commit95334230637cef9fbd199bb79a56271ec73d4732
authorJohn Snow <jsnow@redhat.com>
Mon, 2 Nov 2015 23:32:06 +0000 (2 18:32 -0500)
committerKevin Wolf <kwolf@redhat.com>
Wed, 11 Nov 2015 15:25:47 +0000 (11 16:25 +0100)
tree7bdb909de8cdd28e9dca53221c94d3a0889a0543
parentbcdce5a73cb28f32b3ca3a51e8fa89879685e015
qcow2: avoid misaligned 64bit bswap

If we create a buffer directly on the stack by using 12 bytes, there's
no guarantee the 64bit value we want to swap will be aligned, which
could cause errors with undefined behavior.

Spotted with clang -fsanitize=undefined and observed in iotests 15, 26,
44, 115 and 121.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qcow2-refcount.c