Philippe Mathieu-Daudé <phi...@redhat.com> 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é <phi...@redhat.com> Thanks!