diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_stream.c index 4dd3af9e0d..14472ced22 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -549,8 +549,9 @@ daemonStreamHandleWriteData(virNetServerClientPtr client, } else if (ret == -2) { /* Blocking, so indicate we have more todo later */ return 1; - } else { + } else if (ret < 0) { virNetMessageError rerr; + virErrorPtr err = virSaveLastError(); memset(&rerr, 0, sizeof(rerr)); @@ -559,6 +560,11 @@ daemonStreamHandleWriteData(virNetServerClientPtr client, virStreamEventRemoveCallback(stream->st); virStreamAbort(stream->st); + if (err) { + virSetError(err); + virFreeError(err); + } + return virNetServerProgramSendReplyError(stream->prog, client, msg,