Fixed bug 5168 - Memory leak in RAWINPUT_JoystickOpen

meyraud705

Variable 'hwdata' is not freed in RAWINPUT_JoystickOpen if device->driver->OpenJoystick() fails.
diff --git a/src/joystick/windows/SDL_rawinputjoystick.c b/src/joystick/windows/SDL_rawinputjoystick.c
index 4134e4c..9d752bf 100644
--- a/src/joystick/windows/SDL_rawinputjoystick.c
+++ b/src/joystick/windows/SDL_rawinputjoystick.c
@@ -592,8 +592,8 @@
     }
 
     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 */