Skip to content

Commit

Permalink
kmsdrm: Fixed crashes if allocating memory failed.
Browse files Browse the repository at this point in the history
  • Loading branch information
philippwiesemann committed Aug 5, 2017
1 parent b8a7dd7 commit f216b44
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/video/kmsdrm/SDL_kmsdrmopengles.c
Expand Up @@ -102,6 +102,9 @@ KMSDRM_GLES_SwapWindow(_THIS, SDL_Window * window) {
}

fb_info = KMSDRM_FBFromBO(_this, wdata->next_bo);
if (fb_info == NULL) {
return 0;
}
if (_this->egl_data->egl_swapinterval == 0) {
/* Swap buffers instantly, possible tearing */
/* SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "drmModeSetCrtc(%d, %u, %u, 0, 0, &%u, 1, &%ux%u@%u)",
Expand Down
8 changes: 8 additions & 0 deletions src/video/kmsdrm/SDL_kmsdrmvideo.c
Expand Up @@ -199,6 +199,10 @@ KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)

/* Here a new DRM FB must be created */
fb_info = (KMSDRM_FBInfo *)SDL_calloc(1, sizeof(KMSDRM_FBInfo));
if (fb_info == NULL) {
SDL_OutOfMemory();
return NULL;
}
fb_info->drm_fd = vdata->drm_fd;

w = KMSDRM_gbm_bo_get_width(bo);
Expand Down Expand Up @@ -280,6 +284,10 @@ KMSDRM_VideoInit(_THIS)

/* Open /dev/dri/cardNN */
devname = (char *) SDL_calloc(1, 16);
if (devname == NULL) {
ret = SDL_OutOfMemory();
goto cleanup;
}
SDL_snprintf(devname, 16, "/dev/dri/card%d", vdata->devindex);
vdata->drm_fd = open(devname, O_RDWR | O_CLOEXEC);
SDL_free(devname);
Expand Down

0 comments on commit f216b44

Please sign in to comment.