Explorar el Código

Fixed bug 4968 - NULL passed to memcpy in WriteProprietary in SDL_hidapi_switch.c

meyraud705

In SDL_hidapi_switch.c

line 443: Function BTrySetupUSB call WriteProprietary with pBuf=NULL and ucLen=0
line 376: WriteProprietary check its input (!pBuf && ucLen > 0) || ucLen > sizeof(packet.rgucProprietaryData): ucLen is 0 so it passes
line 382: WriteProprietary call memcpy with pBuf=NULL
Sam Lantinga hace 5 años
padre
commit
833f76ab7b
Se han modificado 1 ficheros con 3 adiciones y 1 borrados
  1. 3 1
      src/joystick/hidapi/SDL_hidapi_switch.c

+ 3 - 1
src/joystick/hidapi/SDL_hidapi_switch.c

@@ -391,7 +391,9 @@ static SDL_bool WriteProprietary(SDL_DriverSwitch_Context *ctx, ESwitchProprieta
 
         packet.ucPacketType = k_eSwitchOutputReportIDs_Proprietary;
         packet.ucProprietaryID = ucCommand;
-        SDL_memcpy(packet.rgucProprietaryData, pBuf, ucLen);
+        if (pBuf) {
+            SDL_memcpy(packet.rgucProprietaryData, pBuf, ucLen);
+        }
 
         if (!WritePacket(ctx, &packet, sizeof(packet))) {
             continue;