Commit ca2a6abd authored by Jann Horn's avatar Jann Horn Committed by Steven Price
Browse files

drm/panthor: Fix memory leak in panthor_ioctl_group_create()



When bailing out due to group_priority_permit() failure, the queue_args
need to be freed. Fix it by rearranging the function to use the
goto-on-error pattern, such that the success case flows straight without
indentation while error cases jump forward to cleanup.

Cc: stable@vger.kernel.org
Fixes: 5f776204 ("drm/panthor: Restrict high priorities on group_create")
Signed-off-by: default avatarJann Horn <jannh@google.com>
Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
Reviewed-by: default avatarSteven Price <steven.price@arm.com>
Signed-off-by: default avatarSteven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20241113-panthor-fix-gcq-bailout-v1-1-654307254d68@google.com
parent 36caa026
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -1103,14 +1103,15 @@ static int panthor_ioctl_group_create(struct drm_device *ddev, void *data,

	ret = group_priority_permit(file, args->priority);
	if (ret)
		return ret;
		goto out;

	ret = panthor_group_create(pfile, args, queue_args);
	if (ret >= 0) {
	if (ret < 0)
		goto out;
	args->group_handle = ret;
	ret = 0;
	}

out:
	kvfree(queue_args);
	return ret;
}