qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 0/3] block/qcow*: Don't take address of fields in pa


From: Peter Maydell
Subject: [Qemu-devel] [PATCH 0/3] block/qcow*: Don't take address of fields in packed structs
Date: Tue, 9 Oct 2018 18:24:58 +0100

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]