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

Commit bf4097ea authored by Zhi Wang's avatar Zhi Wang Committed by Zhenyu Wang
Browse files

drm/i915/gvt: Fix a memory leak in cmd_parser.c



The pointer points to the original memory can never take the return value
of krealloc().

Signed-off-by: default avatarZhi Wang <zhi.a.wang@intel.com>
parent 91d5d854
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -2620,14 +2620,16 @@ static int shadow_workload_ring_buffer(struct intel_vgpu_workload *workload)
	gma_top = workload->rb_start + guest_rb_size;

	if (workload->rb_len > vgpu->reserve_ring_buffer_size[ring_id]) {
		void *va = vgpu->reserve_ring_buffer_va[ring_id];
		void *va, *p;

		/* realloc the new ring buffer if needed */
		vgpu->reserve_ring_buffer_va[ring_id] =
			krealloc(va, workload->rb_len, GFP_KERNEL);
		if (!vgpu->reserve_ring_buffer_va[ring_id]) {
		va = vgpu->reserve_ring_buffer_va[ring_id];
		p = krealloc(va, workload->rb_len, GFP_KERNEL);
		if (!p) {
			gvt_vgpu_err("fail to alloc reserve ring buffer\n");
			return -ENOMEM;
		}
		vgpu->reserve_ring_buffer_va[ring_id] = p;
		vgpu->reserve_ring_buffer_size[ring_id] = workload->rb_len;
	}