From: Jocelyn Falempe <jfalempe@redhat.com>
To: oushixiong1025@163.com
Cc: Javier Martinez Canillas <javierm@redhat.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
Shixiong Ou <oushixiong@kylinos.cn>
Subject: Re: [PATCH 3/4] drm/log: Fix infinite loop when scale is too large for display
Date: Wed, 29 Jul 2026 17:18:41 +0200 [thread overview]
Message-ID: <acfd13bd-bc0b-404e-8a5e-bdbea823a708@redhat.com> (raw)
In-Reply-To: <20260729084815.692944-1-oushixiong1025@163.com>
On 29/07/2026 10:48, oushixiong1025@163.com wrote:
> From: Shixiong Ou <oushixiong@kylinos.cn>
>
> When scale is large enough that scaled_font exceeds the display
> dimensions, rows or columns become 0. A columns value of 0 causes
> an infinite loop in drm_log_draw_kmsg_record() because the loop
> never decrements len.
>
> Check for zero rows/columns in drm_log_setup_modeset() and return
> an error, cleaning up the already allocated buffer to avoid a leak.
Thanks, it looks good to me.
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
>
> Signed-off-by: Shixiong Ou <oushixiong@kylinos.cn>
> ---
> drivers/gpu/drm/clients/drm_log.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/clients/drm_log.c b/drivers/gpu/drm/clients/drm_log.c
> index a04f651e8265..63577aeb705c 100644
> --- a/drivers/gpu/drm/clients/drm_log.c
> +++ b/drivers/gpu/drm/clients/drm_log.c
> @@ -240,6 +240,12 @@ static int drm_log_setup_modeset(struct drm_client_dev *client,
> scanout->scaled_font_w = scanout->font->width * scale;
> scanout->rows = height / scanout->scaled_font_h;
> scanout->columns = width / scanout->scaled_font_w;
> + if (!scanout->rows || !scanout->columns) {
> + drm_client_buffer_delete(scanout->buffer);
> + scanout->buffer = NULL;
> + mode_set->fb = NULL;
> + return -EINVAL;
> + }
> scanout->front_color = drm_draw_color_from_xrgb8888(0xffffff, format);
> scanout->prefix_color = drm_draw_color_from_xrgb8888(0x4e9a06, format);
> return 0;
prev parent reply other threads:[~2026-07-29 15:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-29 8:48 [PATCH 3/4] drm/log: Fix infinite loop when scale is too large for display oushixiong1025
2026-07-29 15:18 ` Jocelyn Falempe [this message]
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=acfd13bd-bc0b-404e-8a5e-bdbea823a708@redhat.com \
--to=jfalempe@redhat.com \
--cc=airlied@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=oushixiong1025@163.com \
--cc=oushixiong@kylinos.cn \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/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.