mirror of
git://slackware.nl/current.git
synced 2024-12-29 10:25:00 +01:00
ef823d82ca
patches/packages/xorg-server-xwayland-21.1.4-x86_64-2_slack15.0.txz: Rebuilt. xkb: switch to array index loops to moving pointers. xkb: add request length validation for XkbSetGeometry. xkb: swap XkbSetDeviceInfo and XkbSetDeviceInfoCheck. I hadn't realized that the xorg-server patches were needed (or applied cleanly) to Xwayland. Thanks to LuckyCyborg for the kind reminder. :-) For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2319 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-2320 (* Security fix *)
75 lines
3.1 KiB
Diff
75 lines
3.1 KiB
Diff
From f1070c01d616c5f21f939d5ebc533738779451ac Mon Sep 17 00:00:00 2001
|
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Date: Tue, 5 Jul 2022 12:40:47 +1000
|
|
Subject: [PATCH] xkb: switch to array index loops to moving pointers
|
|
|
|
Most similar loops here use a pointer that advances with each loop
|
|
iteration, let's do the same here for consistency.
|
|
|
|
No functional changes.
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
|
|
---
|
|
xkb/xkb.c | 20 ++++++++++----------
|
|
1 file changed, 10 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/xkb/xkb.c b/xkb/xkb.c
|
|
index a29262c24..64e52611e 100644
|
|
--- a/xkb/xkb.c
|
|
+++ b/xkb/xkb.c
|
|
@@ -5368,16 +5368,16 @@ _CheckSetSections(XkbGeometryPtr geom,
|
|
row->left = rWire->left;
|
|
row->vertical = rWire->vertical;
|
|
kWire = (xkbKeyWireDesc *) &rWire[1];
|
|
- for (k = 0; k < rWire->nKeys; k++) {
|
|
+ for (k = 0; k < rWire->nKeys; k++, kWire++) {
|
|
XkbKeyPtr key;
|
|
|
|
key = XkbAddGeomKey(row);
|
|
if (!key)
|
|
return BadAlloc;
|
|
- memcpy(key->name.name, kWire[k].name, XkbKeyNameLength);
|
|
- key->gap = kWire[k].gap;
|
|
- key->shape_ndx = kWire[k].shapeNdx;
|
|
- key->color_ndx = kWire[k].colorNdx;
|
|
+ memcpy(key->name.name, kWire->name, XkbKeyNameLength);
|
|
+ key->gap = kWire->gap;
|
|
+ key->shape_ndx = kWire->shapeNdx;
|
|
+ key->color_ndx = kWire->colorNdx;
|
|
if (key->shape_ndx >= geom->num_shapes) {
|
|
client->errorValue = _XkbErrCode3(0x10, key->shape_ndx,
|
|
geom->num_shapes);
|
|
@@ -5389,7 +5389,7 @@ _CheckSetSections(XkbGeometryPtr geom,
|
|
return BadMatch;
|
|
}
|
|
}
|
|
- rWire = (xkbRowWireDesc *) &kWire[rWire->nKeys];
|
|
+ rWire = (xkbRowWireDesc *)kWire;
|
|
}
|
|
wire = (char *) rWire;
|
|
if (sWire->nDoodads > 0) {
|
|
@@ -5454,16 +5454,16 @@ _CheckSetShapes(XkbGeometryPtr geom,
|
|
return BadAlloc;
|
|
ol->corner_radius = olWire->cornerRadius;
|
|
ptWire = (xkbPointWireDesc *) &olWire[1];
|
|
- for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++) {
|
|
- pt->x = ptWire[p].x;
|
|
- pt->y = ptWire[p].y;
|
|
+ for (p = 0, pt = ol->points; p < olWire->nPoints; p++, pt++, ptWire++) {
|
|
+ pt->x = ptWire->x;
|
|
+ pt->y = ptWire->y;
|
|
if (client->swapped) {
|
|
swaps(&pt->x);
|
|
swaps(&pt->y);
|
|
}
|
|
}
|
|
ol->num_points = olWire->nPoints;
|
|
- olWire = (xkbOutlineWireDesc *) (&ptWire[olWire->nPoints]);
|
|
+ olWire = (xkbOutlineWireDesc *)ptWire;
|
|
}
|
|
if (shapeWire->primaryNdx != XkbNoShape)
|
|
shape->primary = &shape->outlines[shapeWire->primaryNdx];
|
|
--
|
|
GitLab
|
|
|