From eea0b0e088303404c658990bb994295fa7c34267 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 2 Jun 2020 17:08:31 -0700 Subject: [PATCH] Fixed bug 5168 - Memory leak in RAWINPUT_JoystickOpen meyraud705 Variable 'hwdata' is not freed in RAWINPUT_JoystickOpen if device->driver->OpenJoystick() fails. --- src/joystick/windows/SDL_rawinputjoystick.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/joystick/windows/SDL_rawinputjoystick.c b/src/joystick/windows/SDL_rawinputjoystick.c index 4134e4ceb..9d752bfc8 100644 --- a/src/joystick/windows/SDL_rawinputjoystick.c +++ b/src/joystick/windows/SDL_rawinputjoystick.c @@ -592,8 +592,8 @@ RAWINPUT_JoystickOpen(SDL_Joystick * joystick, int device_index) } if (!device->driver->OpenJoystick(&device->hiddevice, joystick)) { - /* Only possible error is out of memory */ - return SDL_OutOfMemory(); + SDL_free(hwdata); + return -1; } hwdata->reserved = (void*)-1; /* crash if some code slips by that tries to use this */