summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2022-11-09 15:03:18 +0100
committersfan5 <sfan5@live.de>2022-11-10 16:19:37 +0100
commit175e2500383ba29dfb6e40a86bdcbc3cf52d2c5d (patch)
treeee3b64cb19df579f9d8bcfeeb29a8410b7467773
parent2e5d0d6e07b373445dfecc3bb59454d08d9439d5 (diff)
downloadmpv-175e2500383ba29dfb6e40a86bdcbc3cf52d2c5d.tar.bz2
mpv-175e2500383ba29dfb6e40a86bdcbc3cf52d2c5d.tar.xz
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.
-rw-r--r--video/out/wayland_common.c2
-rw-r--r--video/out/x11_common.c4
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);
}