qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] block/qcow*: Don't take address of fields in packed structs
@ 2018-10-09 17:24 Peter Maydell
  2018-10-09 17:24 ` [Qemu-devel] [PATCH 1/3] block/qcow2: " Peter Maydell
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Peter Maydell @ 2018-10-09 17:24 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Max Reitz, qemu-block

Taking the address of a field in a packed struct is a bad idea, because
it might not be actually aligned enough for that pointer type (and
thus cause a crash on dereference on some host architectures). Newer
versions of clang warn about this. Avoid the bug by not using the
"modify in place" byte swapping functions.

There are a few places in the affected files where the in-place swap
function is used on something other than a packed struct field; we
convert those anyway, for consistency.

Patches produced mechanically using spatch; in one case I also
did a little hand-editing to wrap overlong lines that checkpatch
would otherwise complain about.

(clang also complains about other files in block: vdi.c, vpc.c,
vhdx.h, vhdx.c, vhdx-endian.c, vhdx-log.c -- I may produce patches
for those later if nobody else gets there first.)

thanks
-- PMM

Peter Maydell (3):
  block/qcow2: Don't take address of fields in packed structs
  block/qcow: Don't take address of fields in packed structs
  block/qcow2-bitmap: Don't take address of fields in packed structs

 block/qcow.c         | 18 ++++++-------
 block/qcow2-bitmap.c | 24 ++++++++---------
 block/qcow2.c        | 64 +++++++++++++++++++++++---------------------
 3 files changed, 55 insertions(+), 51 deletions(-)

-- 
2.19.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-11-05 14:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-09 17:24 [Qemu-devel] [PATCH 0/3] block/qcow*: Don't take address of fields in packed structs Peter Maydell
2018-10-09 17:24 ` [Qemu-devel] [PATCH 1/3] block/qcow2: " Peter Maydell
2018-10-09 17:25 ` [Qemu-devel] [PATCH 2/3] block/qcow: " Peter Maydell
2018-10-09 17:25 ` [Qemu-devel] [PATCH 3/3] block/qcow2-bitmap: " Peter Maydell
2018-10-09 17:49 ` [Qemu-devel] [PATCH 0/3] block/qcow*: " Richard Henderson
2018-10-09 19:04 ` [Qemu-devel] [Qemu-block] " John Snow
2018-10-10 10:55 ` [Qemu-devel] " Kevin Wolf
2018-11-05 14:41   ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).