These functions do not set errno so is possible that errno is EAGAIN. This would cause an infinite loop in functions like red_stream_write_all (or potentially using the event loop). Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/red-stream.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/red-stream.c b/server/red-stream.c index f4637808c..3dbdfca82 100644 --- a/server/red-stream.c +++ b/server/red-stream.c @@ -596,6 +596,7 @@ static ssize_t red_stream_sasl_write(RedStream *s, const void *buf, size_t nbyte &s->priv->sasl.encodedLength); if (err != SASL_OK) { spice_warning("sasl_encode error: %d", err); + errno = EIO; return -1; } @@ -657,6 +658,7 @@ static ssize_t red_stream_sasl_read(RedStream *s, uint8_t *buf, size_t nbyte) &decoded, &decodedlen); if (err != SASL_OK) { spice_warning("sasl_decode error: %d", err); + errno = EIO; return -1; } -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel