Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7590ebb8 authored by Yi Wang's avatar Yi Wang Committed by Zhenyu Wang
Browse files

drm/i915/gvt: fix memory leak in intel_vgpu_ioctl()



The 'sparse' variable may leak when return in function
intel_vgpu_ioctl(), and this patch fix this.

Signed-off-by: default avatarYi Wang <wang.yi59@zte.com.cn>
Reviewed-by: default avatarJiang Biao <jiang.biao2@zte.com.cn>
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent 4b25e737
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1257,11 +1257,13 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
					&sparse->header, sizeof(*sparse) +
					(sparse->nr_areas *
						sizeof(*sparse->areas)));
				if (ret) {
					kfree(sparse);
				if (ret)
					return ret;
				}
				break;
			default:
				kfree(sparse);
				return -EINVAL;
			}
		}
@@ -1277,6 +1279,7 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
						  sizeof(info), caps.buf,
						  caps.size)) {
					kfree(caps.buf);
					kfree(sparse);
					return -EFAULT;
				}
				info.cap_offset = sizeof(info);
@@ -1285,6 +1288,7 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
			kfree(caps.buf);
		}

		kfree(sparse);
		return copy_to_user((void __user *)arg, &info, minsz) ?
			-EFAULT : 0;
	} else if (cmd == VFIO_DEVICE_GET_IRQ_INFO) {