9pfs: fix potential host memory leak in v9fs_read

In 9pfs read dispatch function, it doesn't free two QEMUIOVector
object thus causing potential memory leak. This patch avoid this.

Signed-off-by: Li Qiang <liqiang6-s@360.cn>
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 ba42ebb863
commit e95c9a493a
1 changed files with 3 additions and 2 deletions

View File

@ -1826,14 +1826,15 @@ static void v9fs_read(void *opaque)
if (len < 0) { if (len < 0) {
/* IO error return the error */ /* IO error return the error */
err = len; err = len;
goto out; goto out_free_iovec;
} }
} while (count < max_count && len > 0); } while (count < max_count && len > 0);
err = pdu_marshal(pdu, offset, "d", count); err = pdu_marshal(pdu, offset, "d", count);
if (err < 0) { if (err < 0) {
goto out; goto out_free_iovec;
} }
err += offset + count; err += offset + count;
out_free_iovec:
qemu_iovec_destroy(&qiov); qemu_iovec_destroy(&qiov);
qemu_iovec_destroy(&qiov_full); qemu_iovec_destroy(&qiov_full);
} else if (fidp->fid_type == P9_FID_XATTR) { } else if (fidp->fid_type == P9_FID_XATTR) {