From baca6f183d78a0c864a5ccc0ec64e26ba960e604 Mon Sep 17 00:00:00 2001 From: Anthony Liguori Date: Tue, 5 Mar 2013 23:21:16 +0530 Subject: [PATCH] char-socket: fix error reporting Right now the inet connect code tries all available addresses but until one doesn't fail. It passes local_err each time without clearing it from the previous failure. This can trigger an assert since the inet connect code tries to set an error on an object != NULL. Signed-off-by: Anthony Liguori Signed-off-by: Amit Shah Message-id: 16c806d60aa5e9660ed7751bb4e37dcd278f97f0.1362505276.git.amit.shah@redhat.com Signed-off-by: Anthony Liguori --- util/qemu-sockets.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 1350cccce31d..3f122965ad32 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -373,6 +373,10 @@ int inet_connect_opts(QemuOpts *opts, Error **errp, } for (e = res; e != NULL; e = e->ai_next) { + if (error_is_set(errp)) { + error_free(*errp); + *errp = NULL; + } if (connect_state != NULL) { connect_state->current_addr = e; }