tests/migration: Tighten error checking
migrate_get_socket_address() neglects to check visit_type_SocketAddressList() failure. This smells like a leak, but it actually will crash dereferencing @addrs. Pass &error_abort to remove the code smell. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20200505101908.6207-5-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
5e959d2e6e
commit
d01127584e
@ -13,6 +13,7 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
|
|
||||||
#include "libqtest.h"
|
#include "libqtest.h"
|
||||||
|
#include "qapi/error.h"
|
||||||
#include "qapi/qmp/qdict.h"
|
#include "qapi/qmp/qdict.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
#include "qemu/option.h"
|
#include "qemu/option.h"
|
||||||
@ -301,7 +302,6 @@ static char *migrate_get_socket_address(QTestState *who, const char *parameter)
|
|||||||
{
|
{
|
||||||
QDict *rsp;
|
QDict *rsp;
|
||||||
char *result;
|
char *result;
|
||||||
Error *local_err = NULL;
|
|
||||||
SocketAddressList *addrs;
|
SocketAddressList *addrs;
|
||||||
Visitor *iv = NULL;
|
Visitor *iv = NULL;
|
||||||
QObject *object;
|
QObject *object;
|
||||||
@ -310,7 +310,7 @@ static char *migrate_get_socket_address(QTestState *who, const char *parameter)
|
|||||||
object = qdict_get(rsp, parameter);
|
object = qdict_get(rsp, parameter);
|
||||||
|
|
||||||
iv = qobject_input_visitor_new(object);
|
iv = qobject_input_visitor_new(object);
|
||||||
visit_type_SocketAddressList(iv, NULL, &addrs, &local_err);
|
visit_type_SocketAddressList(iv, NULL, &addrs, &error_abort);
|
||||||
visit_free(iv);
|
visit_free(iv);
|
||||||
|
|
||||||
/* we are only using a single address */
|
/* we are only using a single address */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user