All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/gem: Do not leak siblings[] on proto context error
Date: Wed, 01 Jul 2026 07:41:36 +0000	[thread overview]
Message-ID: <20260701074137.84A9B1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260701073030.44850-1-joonas.lahtinen@linux.intel.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [Critical] Unchecked NULL pointer dereference of `pe->engine` in `set_proto_ctx_sseu()`.
--

commit 65a99ba2c873d452c04e00448f3e025e69552b68
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

drm/i915/gem: Do not leak siblings[] on proto context error

This commit fixes a memory leak in the context creation error path.
It ensures the siblings[] array is properly freed if an error happens
while processing user extensions.

> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
> index aeafe1742d308..87fce2adfeefb 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
[ ... ]
> @@ -800,15 +800,21 @@ static int set_proto_ctx_engines(struct drm_i915_file_private *fpriv,
>  					   set_proto_ctx_engines_extensions,
>  					   ARRAY_SIZE(set_proto_ctx_engines_extensions),
>  					   &set);
[ ... ]
> +err_extensions:
> +	for (n = 0; n < set.num_engines; n++)
> +		kfree(set.engines[n].siblings);
> +err:
> +	kfree(set.engines);
> +
> +	return err;
>  }
>  
>  static int set_proto_ctx_sseu(struct drm_i915_file_private *fpriv,

[Severity: Critical]
This is a pre-existing issue, but could this cause a NULL pointer
dereference later in set_proto_ctx_sseu()?

If a user creates a proto-context and uses I915_CONTEXT_PARAM_ENGINES to
set an engine array with an I915_ENGINE_CLASS_INVALID entry,
set_proto_ctx_engines() initializes the slot to 0 and skips setting
pe->engine.

If the user then calls I915_CONTEXT_PARAM_SSEU and specifies the index of
that invalid engine, set_proto_ctx_sseu() executes this:

    idx = array_index_nospec(idx, pc->num_user_engines);
    pe = &pc->user_engines[idx];

    /* Only render engine supports RPCS configuration. */
    if (pe->engine->class != RENDER_CLASS)
        return -EINVAL;

Does pe->engine need to be checked for NULL before dereferencing it here, to
prevent a panic?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260701073030.44850-1-joonas.lahtinen@linux.intel.com?part=1

  reply	other threads:[~2026-07-01  7:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-01  7:30 [PATCH] drm/i915/gem: Do not leak siblings[] on proto context error Joonas Lahtinen
2026-07-01  7:41 ` sashiko-bot [this message]
2026-07-01  8:08   ` Joonas Lahtinen
2026-07-01  8:45 ` ✗ i915.CI.BAT: failure for " Patchwork
2026-07-01 10:39 ` ✓ i915.CI.BAT: success for drm/i915/gem: Do not leak siblings[] on proto context error (rev2) Patchwork
2026-07-01 11:20 ` [PATCH] drm/i915/gem: Do not leak siblings[] on proto context error Maarten Lankhorst
2026-07-01 22:18 ` ✗ i915.CI.Full: failure for drm/i915/gem: Do not leak siblings[] on proto context error (rev2) Patchwork
2026-07-02 16:03 ` ✗ i915.CI.BAT: failure for drm/i915/gem: Do not leak siblings[] on proto context error (rev3) Patchwork
2026-07-03  9:10 ` ✓ i915.CI.BAT: success for drm/i915/gem: Do not leak siblings[] on proto context error (rev4) Patchwork
2026-07-04  2:36 ` ✗ i915.CI.Full: failure " Patchwork

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=20260701074137.84A9B1F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.