xkb: if kbd init failed, NULL out the pointers after freeing them (#21278)
Reproducible: Configure a server that uses the keyboard driver with an invalid ruleset, e.g. (Option "XkbRules" "foobar"). Ensure that Option "AllowEmptyInput" is "off" in the ServerFlags or ServerLayout section. Start the server. After failing to init the keymap, the server will try to clean up after the device, double-freeing some xkb structs that have not been reset properly. X.Org Bug 21278 <http://bugs.freedesktop.org/show_bug.cgi?id=21278> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
		
							parent
							
								
									c2b668e6ff
								
							
						
					
					
						commit
						ac13145dbc
					
				|  | @ -622,10 +622,13 @@ unwind_desc: | |||
|     XkbFreeKeyboard(xkb, 0, TRUE); | ||||
| unwind_info: | ||||
|     xfree(xkbi); | ||||
|     dev->key->xkbInfo = NULL; | ||||
| unwind_kbdfeed: | ||||
|     xfree(dev->kbdfeed); | ||||
|     dev->kbdfeed = NULL; | ||||
| unwind_key: | ||||
|     xfree(dev->key); | ||||
|     dev->key = NULL; | ||||
|     return FALSE; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue