Skip to content

Commit

Permalink
[KMS/DRM] Fix for bug #5468: corruption on dynamic cursor changing ca…
Browse files Browse the repository at this point in the history
…used by wrong buffer size.
  • Loading branch information
vanfanel committed Jan 24, 2021
1 parent 99facb1 commit e1d932f
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions src/video/kmsdrm/SDL_kmsdrmmouse.c
Expand Up @@ -242,17 +242,15 @@ KMSDRM_ShowCursor(SDL_Cursor * cursor)
/* Prepare a buffer we can dump to our GBM BO (different
size, alpha premultiplication...) */
bo_stride = KMSDRM_gbm_bo_get_stride(dispdata->cursor_bo);
bufsize = bo_stride * curdata->h;
bufsize = bo_stride * dispdata->cursor_h;

ready_buffer = (uint32_t*)SDL_calloc(1, bufsize);

ready_buffer = (uint32_t*)SDL_malloc(bufsize);
if (!ready_buffer) {
ret = SDL_OutOfMemory();
goto cleanup;
}

/* Clean the whole buffer we are preparing. */
SDL_memset(ready_buffer, 0x00, bo_stride * curdata->h);

/* Copy from the cursor buffer to a buffer that we can dump to the GBM BO,
pre-multiplying by alpha each pixel as we go. */
for (i = 0; i < curdata->h; i++) {
Expand Down

0 comments on commit e1d932f

Please sign in to comment.