Truncate wm_name utf8 strings to first zero byte

Fixes #3515
This commit is contained in:
Orestis Floros 2018-11-09 19:41:31 +02:00
parent 665b16807f
commit 11bc25b70b
No known key found for this signature in database
GPG Key ID: E9AD9F32E401E38F
1 changed files with 10 additions and 4 deletions

View File

@ -74,8 +74,12 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop, bool befo
} }
i3string_free(win->name); 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); Con *con = con_by_window_id(win->id);
if (con != NULL && con->title_format != NULL) { 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); i3string_free(win->name);
win->name = i3string_from_utf8_with_length(xcb_get_property_value(prop), const int len = xcb_get_property_value_length(prop);
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); Con *con = con_by_window_id(win->id);
if (con != NULL && con->title_format != NULL) { if (con != NULL && con->title_format != NULL) {