[PATCH 01/26] object: add extra sanity checks

Marc-André Lureau posted 26 patches 6 years, 2 months ago
[PATCH 01/26] object: add extra sanity checks
Posted by Marc-André Lureau 6 years, 2 months ago
Type system checked that children class_size >= parent class_size, but
not instances. Fix that.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 qom/object.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/qom/object.c b/qom/object.c
index d51b57fba1..935491d334 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -303,6 +303,7 @@ static void type_initialize(TypeImpl *ti)
         int i;
 
         g_assert(parent->class_size <= ti->class_size);
+        g_assert(parent->instance_size <= ti->instance_size);
         memcpy(ti->class, parent->class, parent->class_size);
         ti->class->interfaces = NULL;
         ti->class->properties = g_hash_table_new_full(
-- 
2.24.0


Re: [PATCH 01/26] object: add extra sanity checks
Posted by Philippe Mathieu-Daudé 6 years, 2 months ago
On 12/1/19 12:15 PM, Marc-André Lureau wrote:
> Type system checked that children class_size >= parent class_size, but
> not instances. Fix that.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>   qom/object.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/qom/object.c b/qom/object.c
> index d51b57fba1..935491d334 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -303,6 +303,7 @@ static void type_initialize(TypeImpl *ti)
>           int i;
>   
>           g_assert(parent->class_size <= ti->class_size);
> +        g_assert(parent->instance_size <= ti->instance_size);
>           memcpy(ti->class, parent->class, parent->class_size);
>           ti->class->interfaces = NULL;
>           ti->class->properties = g_hash_table_new_full(
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>