Mir: Fixed crash if allocating memory for cursor failed.

Philipp Wiesemann 2016-02-22 19:00:22 +01:00
parent 697984df20
commit 92209c260d
1 changed files with 13 additions and 1 deletions

View File

@ -59,6 +59,8 @@ MIR_CreateDefaultCursor()
} }
else { else {
SDL_OutOfMemory(); SDL_OutOfMemory();
SDL_free(cursor);
cursor = NULL;
} }
} }
else { else {
@ -108,7 +110,13 @@ MIR_CreateCursor(SDL_Surface* surface, int hot_x, int hot_y)
MIR_Data* mir_data = (MIR_Data*)SDL_GetVideoDevice()->driverdata; MIR_Data* mir_data = (MIR_Data*)SDL_GetVideoDevice()->driverdata;
SDL_Cursor* cursor = MIR_CreateDefaultCursor(); SDL_Cursor* cursor = MIR_CreateDefaultCursor();
MIR_Cursor* mir_cursor = (MIR_Cursor*)cursor->driverdata; MIR_Cursor* mir_cursor;
if (!cursor) {
return NULL;
}
mir_cursor = (MIR_Cursor*)cursor->driverdata;
stream = MIR_mir_connection_create_buffer_stream_sync(mir_data->connection, stream = MIR_mir_connection_create_buffer_stream_sync(mir_data->connection,
s_w, s_h, mir_data->pixel_format, s_w, s_h, mir_data->pixel_format,
@ -132,6 +140,10 @@ MIR_CreateSystemCursor(SDL_SystemCursor id)
MirCursorConfiguration* conf; MirCursorConfiguration* conf;
SDL_Cursor* cursor = MIR_CreateDefaultCursor(); SDL_Cursor* cursor = MIR_CreateDefaultCursor();
if (!cursor) {
return NULL;
}
switch(id) { switch(id) {
case SDL_SYSTEM_CURSOR_ARROW: case SDL_SYSTEM_CURSOR_ARROW:
cursor_name = MIR_mir_arrow_cursor_name; cursor_name = MIR_mir_arrow_cursor_name;