Fold send_response(). qobject_to_json() can't return NULL (it will crash if allocation failed, either in memcpy() or abort from g_realloc()).
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- qga/main.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/qga/main.c b/qga/main.c index b005550c70..66fe7ac3de 100644 --- a/qga/main.c +++ b/qga/main.c @@ -522,8 +522,9 @@ fail: #endif } -static int send_response(GAState *s, const QDict *rsp) +static void dispatch_return_cb(QmpSession *session, QDict *rsp) { + GAState *s = container_of(session, GAState, session); const char *buf; QString *payload_qstr, *response_qstr; GIOStatus status; @@ -531,9 +532,6 @@ static int send_response(GAState *s, const QDict *rsp) g_assert(rsp && s->channel); payload_qstr = qobject_to_json(QOBJECT(rsp)); - if (!payload_qstr) { - return -EINVAL; - } if (s->delimit_response) { s->delimit_response = false; @@ -550,18 +548,7 @@ static int send_response(GAState *s, const QDict *rsp) status = ga_channel_write_all(s->channel, buf, strlen(buf)); qobject_unref(response_qstr); if (status != G_IO_STATUS_NORMAL) { - return -EIO; - } - - return 0; -} - -static void dispatch_return_cb(QmpSession *session, QDict *rsp) -{ - GAState *s = container_of(session, GAState, session); - int ret = send_response(s, rsp); - if (ret < 0) { - g_warning("error sending response: %s", strerror(-ret)); + g_warning("Failed sending response"); } } -- 2.24.0