dix: free ClassesRec when a BadAlloc occurs during CoreKeyboardProc.

This commit is contained in:
Peter Hutterer 2008-01-03 18:09:56 +10:30
parent 8da83836b6
commit c7e9b67c54

View File

@ -415,12 +415,14 @@ CoreKeyboardProc(DeviceIntPtr pDev, int what)
keySyms.mapWidth); keySyms.mapWidth);
if (!keySyms.map) { if (!keySyms.map) {
ErrorF("[dix] Couldn't allocate core keymap\n"); ErrorF("[dix] Couldn't allocate core keymap\n");
xfree(classes);
return BadAlloc; return BadAlloc;
} }
modMap = (CARD8 *)xalloc(MAP_LENGTH); modMap = (CARD8 *)xalloc(MAP_LENGTH);
if (!modMap) { if (!modMap) {
ErrorF("[dix] Couldn't allocate core modifier map\n"); ErrorF("[dix] Couldn't allocate core modifier map\n");
xfree(classes);
return BadAlloc; return BadAlloc;
} }
bzero((char *)modMap, MAP_LENGTH); bzero((char *)modMap, MAP_LENGTH);