Switch to using the correct intptr_t type use where a pointer must be cast to an...
[pub/USBasp.git] / Demos / Device / LowLevel / RNDISEthernet / Lib / ICMP.c
index 02a401f..a43ffca 100644 (file)
@@ -62,12 +62,12 @@ int16_t ICMP_ProcessICMPPacket(void* InDataStart, void* OutDataStart)
                ICMPHeaderOUT->Id       = ICMPHeaderIN->Id;
                ICMPHeaderOUT->Sequence = ICMPHeaderIN->Sequence;
                
-               uint16_t DataSize = FrameIN.FrameLength - ((((uint16_t)InDataStart + sizeof(ICMP_Header_t)) - (uint16_t)FrameIN.FrameData));
+               intptr_t DataSize = FrameIN.FrameLength - ((((intptr_t)InDataStart + sizeof(ICMP_Header_t)) - (intptr_t)FrameIN.FrameData));
                
                /* Copy the remaining payload to the response - echo requests should echo back any sent data */
-               memcpy(&((uint8_t*)OutDataStart)[sizeof(ICMP_Header_t)],
-                      &((uint8_t*)InDataStart)[sizeof(ICMP_Header_t)],
-                          DataSize);
+               memmove(&((uint8_t*)OutDataStart)[sizeof(ICMP_Header_t)],
+                       &((uint8_t*)InDataStart)[sizeof(ICMP_Header_t)],
+                           DataSize);
 
                ICMPHeaderOUT->Checksum = Ethernet_Checksum16(ICMPHeaderOUT, (DataSize + sizeof(ICMP_Header_t)));