9pfs: fix memory leak in v9fs_write

If an error occurs when marshalling the transfer length to the guest, the
v9fs_write() function doesn't free an IO vector, thus leading to a memory
leak. This patch fixes the issue.

Signed-off-by: Li Qiang <liqiang6-s@360.cn>
Reviewed-by: Greg Kurz <groug@kaod.org>
[groug, rephrased the changelog]
Signed-off-by: Greg Kurz <groug@kaod.org>
This commit is contained in:
Li Qiang 2016-10-17 14:13:58 +02:00 committed by Greg Kurz
parent 4c1586787f
commit fdfcc9aeea

View File

@ -2090,7 +2090,7 @@ static void coroutine_fn v9fs_write(void *opaque)
offset = 7; offset = 7;
err = pdu_marshal(pdu, offset, "d", total); err = pdu_marshal(pdu, offset, "d", total);
if (err < 0) { if (err < 0) {
goto out; goto out_qiov;
} }
err += offset; err += offset;
trace_v9fs_write_return(pdu->tag, pdu->id, total, err); trace_v9fs_write_return(pdu->tag, pdu->id, total, err);