[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] qmp: object-add: Validate class before creat
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH v2] qmp: object-add: Validate class before creating object |
Date: |
Fri, 25 Apr 2014 16:16:08 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Apr 25, 2014 at 08:42:59PM +0200, Andreas Färber wrote:
> Am 25.04.2014 20:02, schrieb Luiz Capitulino:
> > On Fri, 25 Apr 2014 17:57:12 +0200
> > Andreas Färber <address@hidden> wrote:
> >> Am 25.04.2014 17:12, schrieb Luiz Capitulino:
> >>> On Wed, 16 Apr 2014 14:39:38 -0300
> >>> Eduardo Habkost <address@hidden> wrote:
> >>>
> >>>> Currently it is very easy to crash QEMU by issuing an object-add command
> >>>> using an abstract class or a class that doesn't support
> >>>> TYPE_USER_CREATABLE as parameter.
> >>>>
> >>>> Example: with the following QMP command:
> >>>>
> >>>> (QEMU) object-add qom-type=cpu id=foo
> >>>>
> >>>> QEMU aborts at:
> >>>>
> >>>> ERROR:qom/object.c:335:object_initialize_with_type: assertion
> >>>> failed: (type->abstract == false)
> >>>>
> >>>> This patch moves the check for TYPE_USER_CREATABLE before object_new(),
> >>>> and adds a check to prevent the code from trying to instantiate abstract
> >>>> classes.
> >>>>
> >>>> Signed-off-by: Eduardo Habkost <address@hidden>
> >>>
> >>> Applied to the qmp branch, thanks Eduardo.
> [...]
> >>>> diff --git a/qmp.c b/qmp.c
> >>>> index 87a28f7..9a93ab1 100644
> >>>> --- a/qmp.c
> >>>> +++ b/qmp.c
> >>>> @@ -540,14 +540,27 @@ void object_add(const char *type, const char *id,
> >>>> const QDict *qdict,
> >>>> Visitor *v, Error **errp)
> >>>> {
> >>>> Object *obj;
> >>>> + ObjectClass *klass;
> >>
> >> Luiz, can you rename klass to oc please?
> >
> > My pull request is almost ready (finishing last few tests), so I think
> > it's a bit late for a style change.
>
> Then either one of you please follow-up with a fix before you forget.
> I've been asked to change patches that way, so I expect others do, too.
Could you explain why this is a bug? The patch matches the existing
style in qmp.c, and if I grep the whole tree I see 482 matches for
'ObjectClass *klass' and 165 for 'ObjectClass *oc'.
--
Eduardo