From d008754d24ab147917311e79c21b6a9c96425c13 Mon Sep 17 00:00:00 2001
From: tanolino <[EMAIL REDACTED]>
Date: Mon, 17 Mar 2025 21:47:13 +0100
Subject: [PATCH] ASAN Issue (#528)
On MSVC I get a
==9952==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x11e8718f6e00,0x11e8718f6e78) and [0x11e8718f6e18, 0x11e8718f6e90) overlap
Since the CRT memcpy memory is not allowed to overlap (see: https://learn.microsoft.com/en-us/cpp/sanitizers/error-memcpy-param-overlap?view=msvc-170 )
And SDL_memcpy uses memcpy by default.
(cherry picked from commit 9a59dbdcb3a3c087bfc401980b5b4576dc3df99c)
---
src/SDL_renderer_textengine.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/SDL_renderer_textengine.c b/src/SDL_renderer_textengine.c
index 977ecc3e..d8c0c6d2 100644
--- a/src/SDL_renderer_textengine.c
+++ b/src/SDL_renderer_textengine.c
@@ -367,7 +367,7 @@ static bool ResolveMissingGlyphs(TTF_RendererTextEngineData *enginedata, AtlasTe
// Remove this from the missing entries
--num_missing;
if (i < num_missing) {
- SDL_memcpy(&missing[i], &missing[i+1], (num_missing - i) * sizeof(missing[i]));
+ SDL_memmove(&missing[i], &missing[i + 1], (num_missing - i) * sizeof(missing[i]));
}
}
if (num_missing == 0) {