All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] object_initialize: check size of passed in memory
@ 2013-08-23 13:38 Peter Maydell
  2013-08-23 13:38 ` [Qemu-devel] [PATCH 1/2] virtio: Remove unnecessary OBJECT casts Peter Maydell
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Peter Maydell @ 2013-08-23 13:38 UTC (permalink / raw)
  To: qemu-devel
  Cc: Cornelia Huck, Andreas Färber, Alexander Graf,
	Anthony Liguori, patches

This patchset addresses a concern that came up with Andreas' recent
patches for using embedded objects in some of the ARM CPU devices:
object_initialize() doesn't check that there's actually enough space
for the type being added, so if you have:

struct MyDevice {
   ...
   SomeObject obj;
};

    object_initialize(&mydev->obj, "some-object");

then there's no compile time or runtime check that SomeObject
is really big enough for the "some-object" object -- if the
implementation is changed later then there will be silent
memory corruption.

These patches make object_initialize() a macro which can then
use sizeof(*PTR) to pass the size into the implementation to
be checked.

The virtio patch is worth applying anyway -- it removes some
pointless casts which would otherwise have caused false
positives.

Disclaimer: I've eyeballed all the uses of object_initialize()
but I haven't necessarily tested them all.

Peter Maydell (2):
  virtio: Remove unnecessary OBJECT casts
  qom: Make object_initialize and object_initialize_with_type check
    size

 hw/core/qdev.c             |    2 +-
 hw/s390x/s390-virtio-bus.c |   12 ++++++------
 hw/s390x/virtio-ccw.c      |   14 +++++++-------
 hw/virtio/virtio-pci.c     |   16 ++++++++--------
 include/qom/object.h       |   36 ++++++++++++++++++++++++++++++++++--
 qom/object.c               |    9 +++++----
 6 files changed, 61 insertions(+), 28 deletions(-)

-- 
1.7.9.5

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

end of thread, other threads:[~2013-08-23 14:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-23 13:38 [Qemu-devel] [PATCH 0/2] object_initialize: check size of passed in memory Peter Maydell
2013-08-23 13:38 ` [Qemu-devel] [PATCH 1/2] virtio: Remove unnecessary OBJECT casts Peter Maydell
2013-08-23 14:19   ` Andreas Färber
2013-08-23 13:38 ` [Qemu-devel] [PATCH 2/2] qom: Make object_initialize and object_initialize_with_type check size Peter Maydell
2013-08-23 14:13 ` [Qemu-devel] [PATCH 0/2] object_initialize: check size of passed in memory Andreas Färber

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.