Fixed incorrect buffer size check in the USBtoSerial project (thanks to Yuri A Nikifo...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / MIDI.c
index d376a30..9f7bbd4 100644 (file)
@@ -72,7 +72,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
 
                USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Endpoint_t);
 
-               if (EndpointData->EndpointAddress & ENDPOINT_DESCRIPTOR_DIR_IN)
+               if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_IN)
                  DataINEndpoint  = EndpointData;
                else
                  DataOUTEndpoint = EndpointData;
@@ -88,7 +88,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
 
                if (PipeNum == MIDIInterfaceInfo->Config.DataINPipeNumber)
                {
-                       Size            = DataINEndpoint->EndpointSize;
+                       Size            = le16_to_cpu(DataINEndpoint->EndpointSize);
                        EndpointAddress = DataINEndpoint->EndpointAddress;
                        Token           = PIPE_TOKEN_IN;
                        Type            = EP_TYPE_BULK;
@@ -98,7 +98,7 @@ uint8_t MIDI_Host_ConfigurePipes(USB_ClassInfo_MIDI_Host_t* const MIDIInterfaceI
                }
                else if (PipeNum == MIDIInterfaceInfo->Config.DataOUTPipeNumber)
                {
-                       Size            = DataOUTEndpoint->EndpointSize;
+                       Size            = le16_to_cpu(DataOUTEndpoint->EndpointSize);
                        EndpointAddress = DataOUTEndpoint->EndpointAddress;
                        Token           = PIPE_TOKEN_OUT;
                        Type            = EP_TYPE_BULK;