Jelajahi Sumber

Fixed bug 5167 - Memory leak in GuessXInputDevice

meyraud705

Variable 'devices' is not freed if function GuessXInputDevice, in SDL_xinputjoystick.c, return early.
Sam Lantinga 4 tahun lalu
induk
melakukan
ac1f174ad5
1 mengubah file dengan 2 tambahan dan 0 penghapusan
  1. 2 0
      src/joystick/windows/SDL_xinputjoystick.c

+ 2 - 0
src/joystick/windows/SDL_xinputjoystick.c

@@ -155,6 +155,7 @@ GuessXInputDevice(Uint8 userid, Uint16 *pVID, Uint16 *pPID, Uint16 *pVersion)
                     *pVID = (Uint16)rdi.hid.dwVendorId;
                     *pPID = (Uint16)rdi.hid.dwProductId;
                     *pVersion = (Uint16)rdi.hid.dwVersionNumber;
+                    SDL_free(devices);
                     return;
                 }
             }
@@ -201,6 +202,7 @@ GuessXInputDevice(Uint8 userid, Uint16 *pVID, Uint16 *pPID, Uint16 *pVersion)
                     SDL_free(s_arrXInputDevicePath[userid]);
                 }
                 s_arrXInputDevicePath[userid] = SDL_strdup(devName);
+                SDL_free(devices);
                 return;
             }
         }