caribou: Fix CVE-2020-25712.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackware-id.org>
This commit is contained in:
Willy Sudiarto Raharjo 2021-01-14 00:17:07 +07:00
parent 5ea564198d
commit 885c578bce
No known key found for this signature in database
GPG key ID: 3F617144D7238786
2 changed files with 50 additions and 2 deletions

46
caribou/3.patch Normal file
View file

@ -0,0 +1,46 @@
From d41c8e44b12222a290eaca16703406b113a630c6 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebster@gmail.com>
Date: Tue, 12 Jan 2021 18:01:47 +0000
Subject: [PATCH] xadapter.vala: Remove XkbKeyTypesMask and fields from
XKbChangeMap call.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This was originally a workaround for xFree86 4.3 - see:
https://bugzilla.gnome.org/show_bug.cgi?id=673547
As of https://gitlab.freedesktop.org/xorg/xserver/-/commit/87c64fc5b0 this
causes a BadLength error when attempting to use shifted characters.
Ref:
https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Changing_Map_Components_in_the_Server
---
libcaribou/xadapter.vala | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/libcaribou/xadapter.vala b/libcaribou/xadapter.vala
index 22858b7..1da5a78 100644
--- a/libcaribou/xadapter.vala
+++ b/libcaribou/xadapter.vala
@@ -195,15 +195,10 @@ namespace Caribou {
Xkb.MapChanges changes = Xkb.MapChanges ();
- // We don't touch key types here but include the
- // information in XkbSetMap request to the server, because
- // some X servers need the information to check the sanity
- // of the keysyms change.
- changes.changed = (ushort) (Xkb.KeySymsMask | Xkb.KeyTypesMask);
+ changes.changed = (ushort) Xkb.KeySymsMask;
changes.first_key_sym = (char) this.reserved_keycode;
changes.num_key_syms = this.xkbdesc.map.key_sym_map[this.reserved_keycode].width;
- changes.first_type = 0;
- changes.num_types = this.xkbdesc.map.num_types;
+
Xkb.change_map (this.xdisplay, this.xkbdesc, changes);
this.xdisplay.flush ();
--
GitLab

View file

@ -2,7 +2,7 @@
# Slackware build script for caribou
# Copyright 2014-2018 Willy Sudiarto Raharjo <willysr@slackware-id.org>
# Copyright 2014-2021 Willy Sudiarto Raharjo <willysr@slackware-id.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -24,7 +24,7 @@
PRGNAM=caribou
VERSION=${VERSION:-0.4.21}
BUILD=${BUILD:-2}
BUILD=${BUILD:-3}
TAG=${TAG:-_csb}
if [ -z "$ARCH" ]; then
@ -74,6 +74,8 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
patch -p1 < $CWD/3.patch
PYTHON="/usr/bin/python3" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \