From e39363d9835622dfb2c36a896e12c01e1575d9f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Sat, 14 May 2022 04:05:44 +0800 Subject: [PATCH] Perform safety check before trying to load glyph cursor The passed in cursor name to xcb_cursor_load_cursor might not match one of the predefined font cursor values. Without the check the call to create glyph cursor will fail with a BadValue error, but the library returns the id allocated for the xcb_cursor_t. A user of the library gets a value which looks like a valid cursor, but when using it for e.g. a cursor value in xcb_create_window it raises a BadCursor error. Origin: upstream Applied-Upstream: commit:cf26479ece9ab9e04616bc10ba674d88a284e5b0 Last-Update: 2017-08-12 Gbp-Pq: Name upstream_Perform-safety-check-before-trying-to-load-glyph-cur.patch --- cursor/load_cursor.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cursor/load_cursor.c b/cursor/load_cursor.c index 914950a..53da009 100644 --- a/cursor/load_cursor.c +++ b/cursor/load_cursor.c @@ -207,6 +207,8 @@ xcb_cursor_t xcb_cursor_load_cursor(xcb_cursor_context_t *c, const char *name) { if (fd == -1 || core_char > -1) { if (core_char == -1) core_char = cursor_shape_to_id(name); + if (core_char == -1) + return XCB_NONE; cid = xcb_generate_id(c->conn); xcb_create_glyph_cursor(c->conn, cid, c->cursor_font, c->cursor_font, core_char, core_char + 1, 0, 0, 0, 65535, 65535, 65535);