qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 40/55] hw/arm/armsse: Pass correct child size to sysbus_init_


From: Markus Armbruster
Subject: Re: [PATCH 40/55] hw/arm/armsse: Pass correct child size to sysbus_init_child_obj()
Date: Wed, 20 May 2020 16:54:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Philippe Mathieu-Daudé <address@hidden> writes:

> On 5/19/20 4:55 PM, Markus Armbruster wrote:
>> armsse_init() initializes s->armv7m[i] for all i.  It passes the size
>> of the entire array instead of the array element to
>> sysbus_init_child_obj().  Harmless, but fix it anyway.
>
> Harmless because the size used to initialize the object is the one
> declared by its TypeInfo::instance_size. In this case for TYPE_ARMV7M
> it is:
>
> static const TypeInfo armv7m_info = {
>     .name = TYPE_ARMV7M,
>     .parent = TYPE_SYS_BUS_DEVICE,
>     .instance_size = sizeof(ARMv7MState),

Yes.  object_initialize_with_type() checks @size is at least
.instance_size, and writes only up to .instance_size.

> How did you notice btw?

Transform the common, obviously sane patterns with Coccinelle, examine
the untransformed remainder.  I found quite a few the bugs this way.

> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

Thanks!




reply via email to

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