Fix overflow for RNDIS class driver responses when returning the adapter query list (thanks to Peter Mc Shane).
This commit is contained in:
parent
2db71bc8a4
commit
0e68abcd4f
10 changed files with 60 additions and 38 deletions
|
@ -54,8 +54,8 @@ int16_t DHCP_ProcessDHCPPacket(void* IPHeaderInStart,
|
|||
DHCP_Header_t* DHCPHeaderIN = (DHCP_Header_t*)DHCPHeaderInStart;
|
||||
DHCP_Header_t* DHCPHeaderOUT = (DHCP_Header_t*)DHCPHeaderOutStart;
|
||||
|
||||
uint8_t* DHCPOptionsINStart = (uint8_t*)(DHCPHeaderInStart + sizeof(DHCP_Header_t));
|
||||
uint8_t* DHCPOptionsOUTStart = (uint8_t*)(DHCPHeaderOutStart + sizeof(DHCP_Header_t));
|
||||
uint8_t* DHCPOptionsINStart = ((uint8_t*)DHCPHeaderInStart + sizeof(DHCP_Header_t));
|
||||
uint8_t* DHCPOptionsOUTStart = ((uint8_t*)DHCPHeaderOutStart + sizeof(DHCP_Header_t));
|
||||
|
||||
DecodeDHCPHeader(DHCPHeaderInStart);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
/* Macros: */
|
||||
/** Maximum size of a HTTP response per transmission */
|
||||
#define HTTP_REPLY_BLOCK_SIZE 128
|
||||
#define HTTP_REPLY_BLOCK_SIZE 128
|
||||
|
||||
/* Function Prototypes: */
|
||||
void Webserver_Init(void);
|
||||
|
|
|
@ -36,6 +36,15 @@
|
|||
|
||||
#include "RNDISEthernet.h"
|
||||
|
||||
/** Message buffer for RNDIS messages processed by the RNDIS device class driver. */
|
||||
static uint8_t RNDIS_Message_Buffer[192];
|
||||
|
||||
/** Global to store the incoming frame from the host before it is processed by the device. */
|
||||
static Ethernet_Frame_Info_t FrameIN;
|
||||
|
||||
/** Global to store the outgoing frame created in the device before it is sent to the host. */
|
||||
static Ethernet_Frame_Info_t FrameOUT;
|
||||
|
||||
/** LUFA RNDIS Class driver interface configuration and state information. This structure is
|
||||
* passed to all RNDIS Class driver functions, so that multiple instances of the same class
|
||||
* within a device can be differentiated from one another.
|
||||
|
@ -65,14 +74,11 @@ USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface =
|
|||
},
|
||||
.AdapterVendorDescription = "LUFA RNDIS Demo Adapter",
|
||||
.AdapterMACAddress = {ADAPTER_MAC_ADDRESS},
|
||||
.MessageBuffer = RNDIS_Message_Buffer,
|
||||
.MessageBufferLength = sizeof(RNDIS_Message_Buffer),
|
||||
},
|
||||
};
|
||||
|
||||
/** Global to store the incoming frame from the host before it is processed by the device. */
|
||||
static Ethernet_Frame_Info_t FrameIN;
|
||||
|
||||
/** Global to store the outgoing frame created in the device before it is sent to the host. */
|
||||
static Ethernet_Frame_Info_t FrameOUT;
|
||||
|
||||
/** Main program entry point. This routine contains the overall program flow, including initial
|
||||
* setup of all components and the main program loop.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue