SDL: Fixed memory leak at shutdown

From 5f8e0ebf584b069b15f88240bda40a8263790079 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 26 Jan 2025 19:29:47 -0800
Subject: [PATCH] Fixed memory leak at shutdown

---
 src/events/SDL_pen.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/events/SDL_pen.c b/src/events/SDL_pen.c
index afc2ea031daa7..71ddd4c0d8d55 100644
--- a/src/events/SDL_pen.c
+++ b/src/events/SDL_pen.c
@@ -109,9 +109,14 @@ bool SDL_InitPen(void)
 void SDL_QuitPen(void)
 {
     SDL_DestroyRWLock(pen_device_rwlock);
-    pen_device_rwlock = 0;
-    SDL_free(pen_devices);
-    pen_devices = NULL;
+    pen_device_rwlock = NULL;
+    if (pen_devices) {
+        for (int i = pen_device_count; i--; ) {
+            SDL_free(pen_devices[i].name);
+        }
+        SDL_free(pen_devices);
+        pen_devices = NULL;
+    }
     pen_device_count = 0;
     pen_touching = 0;
 }