[gtk+] GdkWaylandWindow: Force window titles to valid utf8
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GdkWaylandWindow: Force window titles to valid utf8
- Date: Mon, 20 Mar 2017 19:54:03 +0000 (UTC)
commit 12b7d30a2d390fa4755828b6dc3748695c52a365
Author: Timm Bäder <mail baedert org>
Date: Mon Mar 20 19:56:22 2017 +0100
GdkWaylandWindow: Force window titles to valid utf8
Use the new g_utf8_make_valid in case the given title is not valid utf8.
Also bump the glib requirement to 2.51.5.
configure.ac | 4 ++--
gdk/wayland/gdkwindow-wayland.c | 18 ++++++++++++++----
2 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index c91fb7d..d59b6bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,8 +42,8 @@ m4_define([gtk_binary_version], [4.0.0])
# required versions of other packages
m4_define([glib_required_major], [2])
-m4_define([glib_required_minor], [49])
-m4_define([glib_required_micro], [4])
+m4_define([glib_required_minor], [51])
+m4_define([glib_required_micro], [5])
m4_define([glib_required_version],
[glib_required_major.glib_required_minor.glib_required_micro])
m4_define([glib_min_required_minor],
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 5c09541..17fb720 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -3041,6 +3041,8 @@ gdk_wayland_window_set_title (GdkWindow *window,
{
GdkWindowImplWayland *impl;
const char *end;
+ gsize title_length;
+
g_return_if_fail (title != NULL);
if (GDK_WINDOW_DESTROYED (window))
@@ -3053,10 +3055,18 @@ gdk_wayland_window_set_title (GdkWindow *window,
g_free (impl->title);
- g_utf8_validate (title, MAX_WL_BUFFER_SIZE, &end);
- impl->title = g_malloc (end - title + 1);
- memcpy (impl->title, title, end - title);
- impl->title[end - title] = '\0';
+ title_length = MIN (strlen (title), MAX_WL_BUFFER_SIZE);
+ if (g_utf8_validate (title, title_length, &end))
+ {
+ impl->title = g_malloc (end - title + 1);
+ memcpy (impl->title, title, end - title);
+ impl->title[end - title] = '\0';
+ }
+ else
+ {
+ impl->title = g_utf8_make_valid (title, title_length);
+ g_warning ("Invalid utf8 passed to gdk_window_set_title: '%s'", title);
+ }
gdk_wayland_window_sync_title (window);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]