In case nbd_co_receive_one_chunk() fails in nbd_reply_chunk_iter_receive(), 'NBDReply reply' parameter is used in the check nbd_reply_is_simple() without being initialized. The iotest 083 does not pass under the Valgrind: $./check -nbd -valgrind 083. The alternative solution is to swap the operands in the condition: 'if (s->quit || nbd_reply_is_simple(reply))'
Signed-off-by: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com> --- block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/nbd.c b/block/nbd.c index 81edabb..8480ad4 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -786,7 +786,7 @@ static int nbd_co_receive_cmdread_reply(BDRVNBDState *s, uint64_t handle, int *request_ret, Error **errp) { NBDReplyChunkIter iter; - NBDReply reply; + NBDReply reply = {}; void *payload = NULL; Error *local_err = NULL; -- 1.8.3.1