Browse Source

Fixed bug 5168 - Memory leak in RAWINPUT_JoystickOpen

meyraud705

Variable 'hwdata' is not freed in RAWINPUT_JoystickOpen if device->driver->OpenJoystick() fails.
Sam Lantinga 5 years ago
parent
commit
eea0b0e088
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/joystick/windows/SDL_rawinputjoystick.c

+ 2 - 2
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 */