From 9d32e0e88130d166920f439f7a691c806096e998 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 21 Oct 2025 10:43:04 -0700
Subject: [PATCH] Fixed data alignment for PNG cursors (thanks @Kontrabant!)
---
src/video/windows/SDL_windowsmouse.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/video/windows/SDL_windowsmouse.c b/src/video/windows/SDL_windowsmouse.c
index 273678558aacf..db4d42d6b7642 100644
--- a/src/video/windows/SDL_windowsmouse.c
+++ b/src/video/windows/SDL_windowsmouse.c
@@ -196,7 +196,18 @@ static bool FillIconEntry(CURSORICONFILEDIRENTRY *entry, SDL_Surface *surface, i
static bool WriteIconSurface(SDL_IOStream *dst, SDL_Surface *surface)
{
- return SDL_SavePNG_IO(surface, dst, false);
+ if (!SDL_SavePNG_IO(surface, dst, false)) {
+ return false;
+ }
+
+ // Image data offsets must be WORD aligned
+ Sint64 offset = SDL_TellIO(dst);
+ if (offset & 1) {
+ if (!SDL_WriteU8(dst, 0)) {
+ return false;
+ }
+ }
+ return true;
}
#else