[PATCH v5 0/3] Avoid abort on QMP attempt to add an object with duplicate id

Eric Auger posted 3 patches 3 years, 9 months ago
Test FreeBSD passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200629193424.30280-1-eric.auger@redhat.com
Maintainers: Markus Armbruster <armbru@redhat.com>, Thomas Huth <thuth@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
include/qom/object.h       |  26 ++++++++-
qom/object.c               |  21 +++++--
qom/object_interfaces.c    |   7 ++-
tests/qtest/qmp-cmd-test.c | 109 +++++++++++++++++++++++++++++++++++--
4 files changed, 149 insertions(+), 14 deletions(-)
[PATCH v5 0/3] Avoid abort on QMP attempt to add an object with duplicate id
Posted by Eric Auger 3 years, 9 months ago
Attempting to add an object through QMP with an id that is
already used leads to a qemu abort. This is a regression since
d2623129a7de ("qom: Drop parameter @errp of object_property_add()
& friends").

The first patch fixes the issue and the second patch adds a test
to check the error is gracefully returned to the QMP client.

The last patch can be considered independently. It merges all the
object-add tests into a single test function and cover new failure
cases.

Best Regards

Eric

This series can be found at:
https://github.com/eauger/qemu/tree/qom-graceful-v5

History:

- v4 -> v5:
  - Use 1MB instead of 4GB as size in the hope it removes
    the patchew error

- v3 -> v4:
  - addressed style comment from Markus
  - added patch 3

- v2 -> v3:
  - don't take the object reference on failure in
    object_property_try_add_child
  - add g_assert_nonnull(resp) in 2/2 while keeping
    Thomas A-b

- v1 -> v2:
  - use the try terminology.
  - turn object_property_try_add() into a non-static function
  - add the test


Eric Auger (3):
  qom: Introduce object_property_try_add_child()
  tests/qmp-cmd-test: Add qmp/object-add-duplicate-id
  tests/qmp-cmd-test: Add qmp/object-add-failure-modes

 include/qom/object.h       |  26 ++++++++-
 qom/object.c               |  21 +++++--
 qom/object_interfaces.c    |   7 ++-
 tests/qtest/qmp-cmd-test.c | 109 +++++++++++++++++++++++++++++++++++--
 4 files changed, 149 insertions(+), 14 deletions(-)

-- 
2.20.1