From: "Christian König" <christian.koenig@amd.com>
To: Tvrtko Ursulin <tursulin@ursulin.net>,
"T.J. Mercier" <tjmercier@google.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
Simon Ser <contact@emersion.fr>,
Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: Xingyu Jin <xingyuj@google.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] drm/syncobj: Fix syncobj leak in drm_syncobj_eventfd_ioctl
Date: Tue, 10 Sep 2024 09:30:45 +0200 [thread overview]
Message-ID: <7aef07b2-9859-40a8-ba5b-22aba68c2d9c@amd.com> (raw)
In-Reply-To: <c970dfb2-078c-4bf1-8b50-6e535cf4adf7@ursulin.net>
Am 10.09.24 um 09:26 schrieb Tvrtko Ursulin:
>
> On 09/09/2024 21:53, T.J. Mercier wrote:
>> A syncobj reference is taken in drm_syncobj_find, but not released if
>> eventfd_ctx_fdget or kzalloc fails. Put the reference in these error
>> paths.
>>
>> Reported-by: Xingyu Jin <xingyuj@google.com>
>> Fixes: c7a472297169 ("drm/syncobj: add IOCTL to register an eventfd")
>> Signed-off-by: T.J. Mercier <tjmercier@google.com>
>> ---
>> drivers/gpu/drm/drm_syncobj.c | 17 +++++++++++++----
>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_syncobj.c
>> b/drivers/gpu/drm/drm_syncobj.c
>> index a0e94217b511..4fcfc0b9b386 100644
>> --- a/drivers/gpu/drm/drm_syncobj.c
>> +++ b/drivers/gpu/drm/drm_syncobj.c
>> @@ -1464,6 +1464,7 @@ drm_syncobj_eventfd_ioctl(struct drm_device
>> *dev, void *data,
>> struct drm_syncobj *syncobj;
>> struct eventfd_ctx *ev_fd_ctx;
>> struct syncobj_eventfd_entry *entry;
>> + int ret;
>> if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
>> return -EOPNOTSUPP;
>> @@ -1479,13 +1480,15 @@ drm_syncobj_eventfd_ioctl(struct drm_device
>> *dev, void *data,
>> return -ENOENT;
>> ev_fd_ctx = eventfd_ctx_fdget(args->fd);
>> - if (IS_ERR(ev_fd_ctx))
>> - return PTR_ERR(ev_fd_ctx);
>> + if (IS_ERR(ev_fd_ctx)) {
>> + ret = PTR_ERR(ev_fd_ctx);
>> + goto err_fdget;
>> + }
>> entry = kzalloc(sizeof(*entry), GFP_KERNEL);
>> if (!entry) {
>> - eventfd_ctx_put(ev_fd_ctx);
>> - return -ENOMEM;
>> + ret = -ENOMEM;
>> + goto err_kzalloc;
>> }
>> entry->syncobj = syncobj;
>> entry->ev_fd_ctx = ev_fd_ctx;
>> @@ -1496,6 +1499,12 @@ drm_syncobj_eventfd_ioctl(struct drm_device
>> *dev, void *data,
>> drm_syncobj_put(syncobj);
>> return 0;
>> +
>> +err_kzalloc:
>> + eventfd_ctx_put(ev_fd_ctx);
>> +err_fdget:
>> + drm_syncobj_put(syncobj);
>> + return ret;
>> }
>> int
>
> Easy enough to review while browsing the list:
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Looks reasonable to me as well.
Reviewed-by. Christian König <christian.koenig@amd.com>
CC: stable?
Let me know when you need someone to push it to drm-misc-fixes.
Regards,
Christian.
>
> Regards,
>
> Tvrtko
next prev parent reply other threads:[~2024-09-10 7:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-09 20:53 T.J. Mercier
2024-09-10 7:26 ` Tvrtko Ursulin
2024-09-10 7:30 ` Christian König [this message]
2024-09-10 14:47 ` T.J. Mercier
2024-09-10 15:16 ` Christian König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7aef07b2-9859-40a8-ba5b-22aba68c2d9c@amd.com \
--to=christian.koenig@amd.com \
--cc=airlied@gmail.com \
--cc=contact@emersion.fr \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=pekka.paalanen@collabora.com \
--cc=tjmercier@google.com \
--cc=tursulin@ursulin.net \
--cc=tzimmermann@suse.de \
--cc=xingyuj@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®