78f64db9c8
Check X.Org Security Advisory [1] for more information. [1] https://lists.x.org/archives/xorg-announce/2023-October/003424.html Resolves: https://issues.redhat.com/browse/RHEL-12417
38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
From 204c3393c4c90a29ed6bef64e43849536e863a86 Mon Sep 17 00:00:00 2001
|
|
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Date: Thu, 7 Sep 2023 15:54:30 -0700
|
|
Subject: [PATCH 1/3] CVE-2023-43786: stack exhaustion from infinite recursion
|
|
in PutSubImage()
|
|
|
|
When splitting a single line of pixels into chunks to send to the
|
|
X server, be sure to take into account the number of bits per pixel,
|
|
so we don't just loop forever trying to send more pixels than fit in
|
|
the given request size and not breaking them down into a small enough
|
|
chunk to fix.
|
|
|
|
Fixes: "almost complete rewrite" (Dec. 12, 1987) from X11R2
|
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
---
|
|
src/PutImage.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/PutImage.c b/src/PutImage.c
|
|
index 857ee916..a6db7b42 100644
|
|
--- a/src/PutImage.c
|
|
+++ b/src/PutImage.c
|
|
@@ -914,8 +914,9 @@ PutSubImage (
|
|
req_width, req_height - SubImageHeight,
|
|
dest_bits_per_pixel, dest_scanline_pad);
|
|
} else {
|
|
- int SubImageWidth = (((Available << 3) / dest_scanline_pad)
|
|
- * dest_scanline_pad) - left_pad;
|
|
+ int SubImageWidth = ((((Available << 3) / dest_scanline_pad)
|
|
+ * dest_scanline_pad) - left_pad)
|
|
+ / dest_bits_per_pixel;
|
|
|
|
PutSubImage(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
|
|
(unsigned int) SubImageWidth, 1,
|
|
--
|
|
2.41.0
|
|
|