From 175e2500383ba29dfb6e40a86bdcbc3cf52d2c5d Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 9 Nov 2022 15:03:18 +0100 Subject: [PATCH] wayland, x11: fix possibly unsafe bstr usage In practice this never led to any issues due to implementation details of bstr_sanitize_utf8_latin1, but there's no guarantee that a bstr is correctly null-terminated. --- video/out/wayland_common.c | 2 +- video/out/x11_common.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 51f68a46a6..7dfaff2459 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -1684,7 +1684,7 @@ static int update_window_title(struct vo_wayland_state *wl, const char *title) /* The xdg-shell protocol requires that the title is UTF-8. */ void *tmp = talloc_new(NULL); struct bstr b_title = bstr_sanitize_utf8_latin1(tmp, bstr0(title)); - xdg_toplevel_set_title(wl->xdg_toplevel, b_title.start); + xdg_toplevel_set_title(wl->xdg_toplevel, bstrto0(tmp, b_title)); talloc_free(tmp); return VO_TRUE; } diff --git a/video/out/x11_common.c b/video/out/x11_common.c index 4988f8da7a..2ca2ea6574 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -1439,8 +1439,8 @@ static void vo_x11_update_window_title(struct vo *vo) /* _NET_WM_NAME and _NET_WM_ICON_NAME must be sanitized to UTF-8. */ void *tmp = talloc_new(NULL); struct bstr b_title = bstr_sanitize_utf8_latin1(tmp, bstr0(x11->window_title)); - vo_x11_set_property_utf8(vo, XA(x11, _NET_WM_NAME), b_title.start); - vo_x11_set_property_utf8(vo, XA(x11, _NET_WM_ICON_NAME), b_title.start); + vo_x11_set_property_utf8(vo, XA(x11, _NET_WM_NAME), bstrto0(tmp, b_title)); + vo_x11_set_property_utf8(vo, XA(x11, _NET_WM_ICON_NAME), bstrto0(tmp, b_title)); talloc_free(tmp); }