diff options
| author | Jocelyn Falempe <jfalempe@redhat.com> | 2025-10-09 14:24:48 +0200 |
|---|---|---|
| committer | Jocelyn Falempe <jfalempe@redhat.com> | 2025-10-21 11:28:02 +0200 |
| commit | 179753aa5b7890b311968c033d08f558f0a7be21 (patch) | |
| tree | ec039142fef31baa233c073324633a9572b3ca81 /drivers/gpu/drm/drm_panic.c | |
| parent | 4eabd0d8791eaf9a7b114ccbf56eb488aefe7b1f (diff) | |
drm/panic: Fix drawing the logo on a small narrow screen
If the logo width is bigger than the framebuffer width, and the
height is big enough to hold the logo and the message, it will draw
at x coordinate that are higher than the width, and ends up in a
corrupted image.
Fixes: 4b570ac2eb54 ("drm/rect: Add drm_rect_overlap()")
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://lore.kernel.org/r/20251009122955.562888-2-jfalempe@redhat.com
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_panic.c')
| -rw-r--r-- | drivers/gpu/drm/drm_panic.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c index 1d6312fa1429..23ba791c6131 100644 --- a/drivers/gpu/drm/drm_panic.c +++ b/drivers/gpu/drm/drm_panic.c @@ -429,6 +429,9 @@ static void drm_panic_logo_rect(struct drm_rect *rect, const struct font_desc *f static void drm_panic_logo_draw(struct drm_scanout_buffer *sb, struct drm_rect *rect, const struct font_desc *font, u32 fg_color) { + if (rect->x2 > sb->width || rect->y2 > sb->height) + return; + if (logo_mono) drm_panic_blit(sb, rect, logo_mono->data, DIV_ROUND_UP(drm_rect_width(rect), 8), 1, fg_color); |