P J P <ppan...@redhat.com> 于2021年5月5日周三 下午3:39写道: > > +-- On Tue, 4 May 2021, Li Qiang wrote --+ > | Check whether the 'res' has already been attach_backing to avoid > | memory leak. > | > | Signed-off-by: Li Qiang <liq...@163.com> > | --- > | contrib/vhost-user-gpu/vhost-user-gpu.c | 5 +++++ > | 1 file changed, 5 insertions(+) > | > | diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c > b/contrib/vhost-user-gpu/vhost-user-gpu.c > | index b5e153d0d6..0437e52b64 100644 > | --- a/contrib/vhost-user-gpu/vhost-user-gpu.c > | +++ b/contrib/vhost-user-gpu/vhost-user-gpu.c > | @@ -489,6 +489,11 @@ vg_resource_attach_backing(VuGpu *g, > | return; > | } > | > | + if (res->iov) { > | + cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC; > | + return; > | + } > | + > | ret = vg_create_mapping_iov(g, &ab, cmd, &res->iov); > | if (ret != 0) { > | cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC; > > > * While it'll work, should the check be done by 'virtio_gpu_find_resource()' > before returning 'res' ? ie. if 'res->iov' is being used, then it's similar > case as 'illegal resource specified %d'.
No, 'virtio_gpu_find_resource' is a general function and is used in a lot place and 'res->iov' is specified to 'vg_resource_[de]attach_backing' so we should do this check in 'vg_resource_attach_backing'. Thanks, Li Qiang > > > Thank you. > -- > - P J P > 8685 545E B54C 486B C6EB 271E E285 8B5A F050 DE8D >