Fixed crash if allocation for touch device failed.
If the allocation of an SDL_Touch failed, the number of touch devices was still increased. Later access of the SDL_Touch would then have dereferenced the NULL.main
parent
714687427a
commit
d8c2b36c21
|
@ -145,13 +145,16 @@ SDL_AddTouch(SDL_TouchID touchID, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_touchDevices = touchDevices;
|
SDL_touchDevices = touchDevices;
|
||||||
index = SDL_num_touch++;
|
index = SDL_num_touch;
|
||||||
|
|
||||||
SDL_touchDevices[index] = (SDL_Touch *) SDL_malloc(sizeof(*SDL_touchDevices[index]));
|
SDL_touchDevices[index] = (SDL_Touch *) SDL_malloc(sizeof(*SDL_touchDevices[index]));
|
||||||
if (!SDL_touchDevices[index]) {
|
if (!SDL_touchDevices[index]) {
|
||||||
return SDL_OutOfMemory();
|
return SDL_OutOfMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Added touch to list */
|
||||||
|
++SDL_num_touch;
|
||||||
|
|
||||||
/* we're setting the touch properties */
|
/* we're setting the touch properties */
|
||||||
SDL_touchDevices[index]->id = touchID;
|
SDL_touchDevices[index]->id = touchID;
|
||||||
SDL_touchDevices[index]->num_fingers = 0;
|
SDL_touchDevices[index]->num_fingers = 0;
|
||||||
|
|
Loading…
Reference in New Issue