git: drawterm

Download patch

ref: 48d53278a8273bb39ca295e8f163563ab04b3530
parent: 02c7626b5e227e096549e167609445a456202c5a
author: Jacob Moody <moody@posixcafe.org>
date: Sat Oct 11 12:34:48 EDT 2025

gui-wl: check return value when we mmap the keyboard map (thanks David Arroyo)

Seems like sometimes sway/wlroots will send us garbage to mmap.
Perhaps a bug on their end but we should avoid using garbage
if its handed to us.

--- a/gui-wl/wl-cb.c
+++ b/gui-wl/wl-cb.c
@@ -49,12 +49,14 @@
 
 	wl = data;
 	keymap_string = mmap(nil, size, PROT_READ, MAP_SHARED, fd, 0);
-	xkb_keymap_unref(keymap);
-	keymap = xkb_keymap_new_from_string(wl->xkb_context, keymap_string, XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS);
-	munmap(keymap_string, size);
+	if (keymap_string != MAP_FAILED) {
+		xkb_keymap_unref(keymap);
+		keymap = xkb_keymap_new_from_string(wl->xkb_context, keymap_string, XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS);
+		munmap(keymap_string, size);
+		xkb_state_unref(wl->xkb_state);
+		wl->xkb_state = xkb_state_new(keymap);
+	}
 	close(fd);
-	xkb_state_unref(wl->xkb_state);
-	wl->xkb_state = xkb_state_new(keymap);
 }
 
 static void
--