From: Daniel P. Berrangé <berrange@redhat.com>
The 'ret' variable should only have a value assigned once we have
completely finished reading data, otherwise an error on a subsequent
iteration will report an error but not return a negative value.
Fixes: e23fd0b7fd36c41e6db49df4f4962762d3ef6ab0
Reported-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
src/util/virfdstream.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c
index 4c974ba5d7..cd2ede4501 100644
--- a/src/util/virfdstream.c
+++ b/src/util/virfdstream.c
@@ -961,10 +961,10 @@ static int virFDStreamRead(virStreamPtr st, char *bytes, size_t nbytes)
virFDStreamMsgFree(msg);
}
- ret = got;
if (nbytes > 0) {
goto more;
}
+ ret = got;
} else {
retry:
ret = read(fdst->fd, bytes, nbytes);
--
2.53.0