xserver: Branch 'server-1.20-branch' - 3 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Dec 17 13:27:43 UTC 2020
hw/xwayland/xwayland.c | 4 ++--
meson.build | 2 +-
xkb/XKBGAlloc.c | 11 +++++------
3 files changed, 8 insertions(+), 9 deletions(-)
New commits:
commit f5df31c76118816124be323a3caed22f42cdb50c
Author: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Date: Thu Dec 10 22:32:59 2020 +0100
meson.build: KMS support also depends on dri2
Kernel modesettings support also depends on dri2, see
./hw/xfree86/drivers/modesetting/meson.build
So update meson.build to reflect the changes made in configure.ac by
commit 9c81b8f5b5d7bc987f73e8ef01a81e61205e58ee
Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
(cherry picked from commit 5d73a8b59e0d01d1ee4cb484e4b43563cec2eee9)
diff --git a/meson.build b/meson.build
index 0531463f5..df2ba3663 100644
--- a/meson.build
+++ b/meson.build
@@ -348,7 +348,7 @@ if not libdrm_dep.found() and libdrm_required
error('DRI requested, but LIBDRM not found')
endif
-build_modesetting = libdrm_dep.found()
+build_modesetting = libdrm_dep.found() and dri2proto_dep.found()
build_vbe = false
if get_option('vbe') == 'auto'
commit b09f5f42dcc58cf73ae5ca85a65018aaee72e06f
Author: Mariusz Ceier <mceier+freedesktop at gmail.com>
Date: Wed Dec 2 12:29:15 2020 +0100
xwayland: Replace LogMessage with LogMessageVerb
LogMessage logs only when the XLOG_VERBOSITY is >= 1, but by default
XLOG_VERBOSITY is 0.
Signed-off-by: Mariusz Ceier <mceier+freedesktop at gmail.com>
(cherry picked from commit 95539ab37baa1292d1f2daaa552f9741b0364cad)
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
index b353167c3..c126d95b3 100644
--- a/hw/xwayland/xwayland.c
+++ b/hw/xwayland/xwayland.c
@@ -178,8 +178,8 @@ xwl_window_set_allow_commits_from_property(struct xwl_window *xwl_window,
xwl_window_set_allow_commits(xwl_window, TRUE, "WM fault");
if (!warned) {
- LogMessage(X_WARNING, "Window manager is misusing property %s.\n",
- NameForAtom(prop->propertyName));
+ LogMessageVerb(X_WARNING, 0, "Window manager is misusing property %s.\n",
+ NameForAtom(prop->propertyName));
warned = TRUE;
}
return;
commit c17872d50215938b1a5d899d50907ced01b28eb9
Author: Michal Srb <msrb at suse.com>
Date: Thu Jun 21 13:44:04 2018 +0200
xkb: Fix heap overflow caused by optimized away min.
Calling strlen on char[4] that does not need to contain '\0' is wrong and X
server may end up running into uninitialized memory.
In addition GCC 8 is clever enough that it knows that strlen on char[4] can
return 0, 1, 2, 3 or cause undefined behavior. With this knowledge it can
optimize away the min(..., 4). In reality it can cause the memcpy to be called
with bigger size than 4 and overflow the destination buffer.
Fixes: 83913de25d35 (xkb: Silence some compiler warnings)
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/288
Signed-off-by: Matt Turner <mattst88 at gmail.com>
(cherry picked from commit 74627d13c75cab7aa73c0e713feae0934e780ba0)
diff --git a/xkb/XKBGAlloc.c b/xkb/XKBGAlloc.c
index 8958b0c52..f0cda24fe 100644
--- a/xkb/XKBGAlloc.c
+++ b/xkb/XKBGAlloc.c
@@ -588,8 +588,7 @@ XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
i++, alias++) {
if (strncmp(alias->alias, aliasStr, XkbKeyNameLength) == 0) {
memset(alias->real, 0, XkbKeyNameLength);
- memcpy(alias->real, realStr,
- min(XkbKeyNameLength, strlen(realStr)));
+ memcpy(alias->real, realStr, strnlen(realStr, XkbKeyNameLength));
return alias;
}
}
@@ -599,8 +598,8 @@ XkbAddGeomKeyAlias(XkbGeometryPtr geom, char *aliasStr, char *realStr)
}
alias = &geom->key_aliases[geom->num_key_aliases];
memset(alias, 0, sizeof(XkbKeyAliasRec));
- memcpy(alias->alias, aliasStr, min(XkbKeyNameLength, strlen(aliasStr)));
- memcpy(alias->real, realStr, min(XkbKeyNameLength, strlen(realStr)));
+ memcpy(alias->alias, aliasStr, strnlen(aliasStr, XkbKeyNameLength));
+ memcpy(alias->real, realStr, strnlen(realStr, XkbKeyNameLength));
geom->num_key_aliases++;
return alias;
}
@@ -815,8 +814,8 @@ XkbAddGeomOverlayKey(XkbOverlayPtr overlay,
(_XkbAllocOverlayKeys(row, 1) != Success))
return NULL;
key = &row->keys[row->num_keys];
- memcpy(key->under.name, under, min(XkbKeyNameLength, strlen(under)));
- memcpy(key->over.name, over, min(XkbKeyNameLength, strlen(over)));
+ memcpy(key->under.name, under, strnlen(under, XkbKeyNameLength));
+ memcpy(key->over.name, over, strnlen(over, XkbKeyNameLength));
row->num_keys++;
return key;
}
More information about the xorg-commit
mailing list