From 48e80c8f269365c3320f42c0bdad77369a447fc4 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Thu, 2 Apr 2026 19:25:54 +0200 Subject: [PATCH] memcpy with a NULL src/dst argument is UB malloc of UBSAN returns NULL when allocating 0 bytes, causing a call to memcpy(NULL, xxx, 0); --- src/video/SDL_video.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 6cb30d83a8..a338645c96 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1352,7 +1352,9 @@ SDL_DisplayMode **SDL_GetFullscreenDisplayModes(SDL_DisplayID displayID, int *co result = (SDL_DisplayMode **)SDL_malloc((num_modes + 1) * sizeof(*result) + num_modes * sizeof(**result)); if (result) { SDL_DisplayMode *modes = (SDL_DisplayMode *)((Uint8 *)result + ((num_modes + 1) * sizeof(*result))); - SDL_memcpy(modes, display->fullscreen_modes, num_modes * sizeof(*modes)); + if (num_modes) { + SDL_memcpy(modes, display->fullscreen_modes, num_modes * sizeof(*modes)); + } for (i = 0; i < num_modes; ++i) { result[i] = modes++; }