From: Orestis Floros Date: Fri, 9 Nov 2018 17:41:31 +0000 (+0200) Subject: Truncate wm_name utf8 strings to first zero byte X-Git-Tag: 4.16.1~7 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0377970dab59deb44929329b45620e88b23b6ce2;p=i3%2Fi3 Truncate wm_name utf8 strings to first zero byte Fixes #3515 --- diff --git a/src/window.c b/src/window.c index 68c6933a..61282556 100644 --- a/src/window.c +++ b/src/window.c @@ -74,8 +74,12 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop, bool befo } i3string_free(win->name); - win->name = i3string_from_utf8_with_length(xcb_get_property_value(prop), - xcb_get_property_value_length(prop)); + + /* Truncate the name at the first zero byte. See #3515. */ + const int len = xcb_get_property_value_length(prop); + char *name = sstrndup(xcb_get_property_value(prop), len); + win->name = i3string_from_utf8(name); + free(name); Con *con = con_by_window_id(win->id); if (con != NULL && con->title_format != NULL) { @@ -119,8 +123,10 @@ void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop, bo } i3string_free(win->name); - win->name = i3string_from_utf8_with_length(xcb_get_property_value(prop), - xcb_get_property_value_length(prop)); + const int len = xcb_get_property_value_length(prop); + char *name = sstrndup(xcb_get_property_value(prop), len); + win->name = i3string_from_utf8(name); + free(name); Con *con = con_by_window_id(win->id); if (con != NULL && con->title_format != NULL) {