diff --git a/src/libvirt-stream.c b/src/libvirt-stream.c index ef83696bcda78950060c6cadf200906507003faf..fb646d0aef4dc07ca40c31c9b91a6825e3e9e225 100644 --- a/src/libvirt-stream.c +++ b/src/libvirt-stream.c @@ -622,12 +622,11 @@ virStreamSendAll(virStreamPtr stream, VIR_FREE(bytes); if (ret != 0) { - virErrorPtr orig_err = virSaveLastError(); + virErrorPtr orig_err; + + virErrorPreserveLast(&orig_err); virStreamAbort(stream); - if (orig_err) { - virSetError(orig_err); - virFreeError(orig_err); - } + virErrorRestore(&orig_err); virDispatchError(stream->conn); } @@ -794,12 +793,11 @@ int virStreamSparseSendAll(virStreamPtr stream, VIR_FREE(bytes); if (ret != 0) { - virErrorPtr orig_err = virSaveLastError(); + virErrorPtr orig_err; + + virErrorPreserveLast(&orig_err); virStreamAbort(stream); - if (orig_err) { - virSetError(orig_err); - virFreeError(orig_err); - } + virErrorRestore(&orig_err); virDispatchError(stream->conn); } @@ -900,12 +898,11 @@ virStreamRecvAll(virStreamPtr stream, VIR_FREE(bytes); if (ret != 0) { - virErrorPtr orig_err = virSaveLastError(); + virErrorPtr orig_err; + + virErrorPreserveLast(&orig_err); virStreamAbort(stream); - if (orig_err) { - virSetError(orig_err); - virFreeError(orig_err); - } + virErrorRestore(&orig_err); virDispatchError(stream->conn); } @@ -1034,12 +1031,11 @@ virStreamSparseRecvAll(virStreamPtr stream, VIR_FREE(bytes); if (ret != 0) { - virErrorPtr orig_err = virSaveLastError(); + virErrorPtr orig_err; + + virErrorPreserveLast(&orig_err); virStreamAbort(stream); - if (orig_err) { - virSetError(orig_err); - virFreeError(orig_err); - } + virErrorRestore(&orig_err); virDispatchError(stream->conn); }