mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	keyboard: Fix SIGSEGV that showed up in out-of-memory fuzzing
Stack trace:
    #0  xkb_keymap_ref (keymap=keymap@entry=0x0) at ../libxkbcommon/src/keymap.c:61
    #1  0x00007f53a344ab99 in wlr_keyboard_set_keymap (kb=kb@entry=0x5571af8cb9a0, keymap=keymap@entry=0x0)
        at ../types/wlr_keyboard.c:174
    #2  0x00005571ade057e0 in keyboard_init (seat=0x7ffca0389680) at ../src/keyboard.c:229
    #3  seat_init (server=0x7ffca0389570) at ../src/seat.c:307
    #4  server_init (server=0x7ffca0389570) at ../src/server.c:308
			
			
This commit is contained in:
		
							parent
							
								
									b89f7bfc0d
								
							
						
					
					
						commit
						898a583522
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -226,8 +226,12 @@ keyboard_init(struct seat *seat)
 | 
			
		|||
	struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
 | 
			
		||||
	struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules,
 | 
			
		||||
		XKB_KEYMAP_COMPILE_NO_FLAGS);
 | 
			
		||||
	wlr_keyboard_set_keymap(kb, keymap);
 | 
			
		||||
	xkb_keymap_unref(keymap);
 | 
			
		||||
	if (keymap) {
 | 
			
		||||
		wlr_keyboard_set_keymap(kb, keymap);
 | 
			
		||||
		xkb_keymap_unref(keymap);
 | 
			
		||||
	} else {
 | 
			
		||||
		wlr_log(WLR_ERROR, "Failed to create xkb keymap");
 | 
			
		||||
	}
 | 
			
		||||
	xkb_context_unref(context);
 | 
			
		||||
	wlr_keyboard_set_repeat_info(kb, rc.repeat_rate, rc.repeat_delay);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue