]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Mtftp6Dxe/Mtftp6Rrq.c
NetworkPkg: Apply uncrustify changes
[mirror_edk2.git] / NetworkPkg / Mtftp6Dxe / Mtftp6Rrq.c
index 4935933f23125339a648e9b2d952efd43871d1f4..32327de69ec89b3a51b911109116a56c44dc88ef 100644 (file)
@@ -9,7 +9,6 @@
 \r
 #include "Mtftp6Impl.h"\r
 \r
-\r
 /**\r
   Build and send a ACK packet for download.\r
 \r
 **/\r
 EFI_STATUS\r
 Mtftp6RrqSendAck (\r
-  IN MTFTP6_INSTANCE        *Instance,\r
-  IN UINT16                 BlockNum\r
+  IN MTFTP6_INSTANCE  *Instance,\r
+  IN UINT16           BlockNum\r
   )\r
 {\r
-  EFI_MTFTP6_PACKET         *Ack;\r
-  NET_BUF                   *Packet;\r
-  EFI_STATUS                Status;\r
+  EFI_MTFTP6_PACKET  *Ack;\r
+  NET_BUF            *Packet;\r
+  EFI_STATUS         Status;\r
 \r
   Status = EFI_SUCCESS;\r
 \r
@@ -42,20 +41,20 @@ Mtftp6RrqSendAck (
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  Ack = (EFI_MTFTP6_PACKET *) NetbufAllocSpace (\r
-                                Packet,\r
-                                sizeof (EFI_MTFTP6_ACK_HEADER),\r
-                                FALSE\r
-                                );\r
+  Ack = (EFI_MTFTP6_PACKET *)NetbufAllocSpace (\r
+                               Packet,\r
+                               sizeof (EFI_MTFTP6_ACK_HEADER),\r
+                               FALSE\r
+                               );\r
   ASSERT (Ack != NULL);\r
 \r
-  Ack->Ack.OpCode    = HTONS (EFI_MTFTP6_OPCODE_ACK);\r
-  Ack->Ack.Block[0]  = HTONS (BlockNum);\r
+  Ack->Ack.OpCode   = HTONS (EFI_MTFTP6_OPCODE_ACK);\r
+  Ack->Ack.Block[0] = HTONS (BlockNum);\r
 \r
   //\r
   // Reset current retry count of the instance.\r
   //\r
-  Instance->CurRetry = 0;\r
+  Instance->CurRetry   = 0;\r
   Instance->LastPacket = Packet;\r
 \r
   Status = Mtftp6TransmitPacket (Instance, Packet);\r
@@ -66,7 +65,6 @@ Mtftp6RrqSendAck (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Deliver the received data block to the user, which can be saved\r
   in the user provide buffer or through the CheckPacket callback.\r
@@ -85,19 +83,19 @@ Mtftp6RrqSendAck (
 **/\r
 EFI_STATUS\r
 Mtftp6RrqSaveBlock (\r
-  IN  MTFTP6_INSTANCE       *Instance,\r
-  IN  EFI_MTFTP6_PACKET     *Packet,\r
-  IN  UINT32                Len,\r
-  OUT NET_BUF               **UdpPacket\r
+  IN  MTFTP6_INSTANCE    *Instance,\r
+  IN  EFI_MTFTP6_PACKET  *Packet,\r
+  IN  UINT32             Len,\r
+  OUT NET_BUF            **UdpPacket\r
   )\r
 {\r
-  EFI_MTFTP6_TOKEN          *Token;\r
-  EFI_STATUS                Status;\r
-  UINT16                    Block;\r
-  UINT64                    Start;\r
-  UINT32                    DataLen;\r
-  UINT64                    BlockCounter;\r
-  BOOLEAN                   Completed;\r
+  EFI_MTFTP6_TOKEN  *Token;\r
+  EFI_STATUS        Status;\r
+  UINT16            Block;\r
+  UINT64            Start;\r
+  UINT32            DataLen;\r
+  UINT64            BlockCounter;\r
+  BOOLEAN           Completed;\r
 \r
   Completed = FALSE;\r
   Token     = Instance->Token;\r
@@ -108,7 +106,7 @@ Mtftp6RrqSaveBlock (
   // This is the last block, save the block num\r
   //\r
   if (DataLen < Instance->BlkSize) {\r
-    Completed = TRUE;\r
+    Completed         = TRUE;\r
     Instance->LastBlk = Block;\r
     Mtftp6SetLastBlockNum (&Instance->BlkList, Block);\r
   }\r
@@ -132,7 +130,7 @@ Mtftp6RrqSaveBlock (
     //\r
     // Callback to the check packet routine with the received packet.\r
     //\r
-    Status = Token->CheckPacket (&Instance->Mtftp6, Token, (UINT16) Len, Packet);\r
+    Status = Token->CheckPacket (&Instance->Mtftp6, Token, (UINT16)Len, Packet);\r
 \r
     if (EFI_ERROR (Status)) {\r
       //\r
@@ -147,7 +145,7 @@ Mtftp6RrqSaveBlock (
       Mtftp6SendError (\r
         Instance,\r
         EFI_MTFTP6_ERRORCODE_ILLEGAL_OPERATION,\r
-        (UINT8 *) "User aborted download"\r
+        (UINT8 *)"User aborted download"\r
         );\r
 \r
       return EFI_ABORTED;\r
@@ -155,10 +153,9 @@ Mtftp6RrqSaveBlock (
   }\r
 \r
   if (Token->Buffer != NULL) {\r
-\r
     Start = MultU64x32 (BlockCounter - 1, Instance->BlkSize);\r
     if (Start + DataLen <= Token->BufferSize) {\r
-      CopyMem ((UINT8 *) Token->Buffer + Start, Packet->Data.Data, DataLen);\r
+      CopyMem ((UINT8 *)Token->Buffer + Start, Packet->Data.Data, DataLen);\r
       //\r
       // Update the file size when received the last block\r
       //\r
@@ -185,7 +182,7 @@ Mtftp6RrqSaveBlock (
       Mtftp6SendError (\r
         Instance,\r
         EFI_MTFTP6_ERRORCODE_DISK_FULL,\r
-        (UINT8 *) "User provided memory block is too small"\r
+        (UINT8 *)"User provided memory block is too small"\r
         );\r
 \r
       return EFI_BUFFER_TOO_SMALL;\r
@@ -195,7 +192,6 @@ Mtftp6RrqSaveBlock (
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
 /**\r
   Process the received data packets. It will save the block\r
   then send back an ACK if it is active.\r
@@ -214,16 +210,16 @@ Mtftp6RrqSaveBlock (
 **/\r
 EFI_STATUS\r
 Mtftp6RrqHandleData (\r
-  IN  MTFTP6_INSTANCE       *Instance,\r
-  IN  EFI_MTFTP6_PACKET     *Packet,\r
-  IN  UINT32                Len,\r
-  OUT NET_BUF               **UdpPacket,\r
-  OUT BOOLEAN               *IsCompleted\r
+  IN  MTFTP6_INSTANCE    *Instance,\r
+  IN  EFI_MTFTP6_PACKET  *Packet,\r
+  IN  UINT32             Len,\r
+  OUT NET_BUF            **UdpPacket,\r
+  OUT BOOLEAN            *IsCompleted\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  UINT16                    BlockNum;\r
-  INTN                      Expected;\r
+  EFI_STATUS  Status;\r
+  UINT16      BlockNum;\r
+  INTN        Expected;\r
 \r
   *IsCompleted = FALSE;\r
   Status       = EFI_SUCCESS;\r
@@ -248,7 +244,7 @@ Mtftp6RrqHandleData (
     //\r
     // If Expected is 0, (UINT16) (Expected - 1) is also the expected Ack number (65535).\r
     //\r
-    return Mtftp6RrqSendAck (Instance,  (UINT16) (Expected - 1));\r
+    return Mtftp6RrqSendAck (Instance, (UINT16)(Expected - 1));\r
   }\r
 \r
   Status = Mtftp6RrqSaveBlock (Instance, Packet, Len, UdpPacket);\r
@@ -260,7 +256,7 @@ Mtftp6RrqHandleData (
   //\r
   // Record the total received and saved block number.\r
   //\r
-  Instance->TotalBlock ++;\r
+  Instance->TotalBlock++;\r
 \r
   //\r
   // Reset the passive client's timer whenever it received a valid data packet.\r
@@ -277,7 +273,7 @@ Mtftp6RrqHandleData (
   //\r
   Expected = Mtftp6GetNextBlockNum (&Instance->BlkList);\r
 \r
-  if (Instance->IsMaster || Expected < 0) {\r
+  if (Instance->IsMaster || (Expected < 0)) {\r
     if (Expected < 0) {\r
       //\r
       // If we are passive client, then the just received Block maybe\r
@@ -287,10 +283,10 @@ Mtftp6RrqHandleData (
       //\r
       BlockNum     = Instance->LastBlk;\r
       *IsCompleted = TRUE;\r
-\r
     } else {\r
-      BlockNum     = (UINT16) (Expected - 1);\r
+      BlockNum = (UINT16)(Expected - 1);\r
     }\r
+\r
     //\r
     // Free the received packet before send new packet in ReceiveNotify,\r
     // since the udpio might need to be reconfigured.\r
@@ -298,7 +294,7 @@ Mtftp6RrqHandleData (
     NetbufFree (*UdpPacket);\r
     *UdpPacket = NULL;\r
 \r
-    if (Instance->WindowSize == (Instance->TotalBlock - Instance->AckedBlock) || Expected < 0) {\r
+    if ((Instance->WindowSize == (Instance->TotalBlock - Instance->AckedBlock)) || (Expected < 0)) {\r
       Status = Mtftp6RrqSendAck (Instance, BlockNum);\r
     }\r
   }\r
@@ -306,7 +302,6 @@ Mtftp6RrqHandleData (
   return Status;\r
 }\r
 \r
-\r
 /**\r
   Validate whether the options received in the server's OACK packet is valid.\r
   The options are valid only if:\r
@@ -325,9 +320,9 @@ Mtftp6RrqHandleData (
 **/\r
 BOOLEAN\r
 Mtftp6RrqOackValid (\r
-  IN MTFTP6_INSTANCE           *Instance,\r
-  IN MTFTP6_EXT_OPTION_INFO    *ReplyInfo,\r
-  IN MTFTP6_EXT_OPTION_INFO    *RequestInfo\r
+  IN MTFTP6_INSTANCE         *Instance,\r
+  IN MTFTP6_EXT_OPTION_INFO  *ReplyInfo,\r
+  IN MTFTP6_EXT_OPTION_INFO  *RequestInfo\r
   )\r
 {\r
   //\r
@@ -344,7 +339,8 @@ Mtftp6RrqOackValid (
   if ((((ReplyInfo->BitMap & MTFTP6_OPT_BLKSIZE_BIT) != 0) && (ReplyInfo->BlkSize > RequestInfo->BlkSize)) ||\r
       (((ReplyInfo->BitMap & MTFTP6_OPT_WINDOWSIZE_BIT) != 0) && (ReplyInfo->BlkSize > RequestInfo->BlkSize)) ||\r
       (((ReplyInfo->BitMap & MTFTP6_OPT_TIMEOUT_BIT) != 0) && (ReplyInfo->Timeout != RequestInfo->Timeout))\r
-     ) {\r
+      )\r
+  {\r
     return FALSE;\r
   }\r
 \r
@@ -354,12 +350,12 @@ Mtftp6RrqOackValid (
   // change the setting.\r
   //\r
   if (((ReplyInfo->BitMap & MTFTP6_OPT_MCAST_BIT) != 0) && !NetIp6IsUnspecifiedAddr (&Instance->McastIp)) {\r
-\r
-    if (!NetIp6IsUnspecifiedAddr (&ReplyInfo->McastIp) && CompareMem (\r
-                                                            &ReplyInfo->McastIp,\r
-                                                            &Instance->McastIp,\r
-                                                            sizeof (EFI_IPv6_ADDRESS)\r
-                                                            ) != 0) {\r
+    if (!NetIp6IsUnspecifiedAddr (&ReplyInfo->McastIp) && (CompareMem (\r
+                                                             &ReplyInfo->McastIp,\r
+                                                             &Instance->McastIp,\r
+                                                             sizeof (EFI_IPv6_ADDRESS)\r
+                                                             ) != 0))\r
+    {\r
       return FALSE;\r
     }\r
 \r
@@ -371,7 +367,6 @@ Mtftp6RrqOackValid (
   return TRUE;\r
 }\r
 \r
-\r
 /**\r
   Configure Udp6Io to receive a packet from a multicast address.\r
 \r
@@ -385,19 +380,19 @@ Mtftp6RrqOackValid (
 EFI_STATUS\r
 EFIAPI\r
 Mtftp6RrqConfigMcastUdpIo (\r
-  IN UDP_IO                 *McastIo,\r
-  IN VOID                   *Context\r
+  IN UDP_IO  *McastIo,\r
+  IN VOID    *Context\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  EFI_UDP6_PROTOCOL         *Udp6;\r
-  EFI_UDP6_CONFIG_DATA      *Udp6Cfg;\r
-  EFI_IPv6_ADDRESS          Group;\r
-  MTFTP6_INSTANCE           *Instance;\r
+  EFI_STATUS            Status;\r
+  EFI_UDP6_PROTOCOL     *Udp6;\r
+  EFI_UDP6_CONFIG_DATA  *Udp6Cfg;\r
+  EFI_IPv6_ADDRESS      Group;\r
+  MTFTP6_INSTANCE       *Instance;\r
 \r
   Udp6     = McastIo->Protocol.Udp6;\r
   Udp6Cfg  = &(McastIo->Config.Udp6);\r
-  Instance = (MTFTP6_INSTANCE *) Context;\r
+  Instance = (MTFTP6_INSTANCE *)Context;\r
 \r
   //\r
   // Set the configure data for the mcast Udp6Io.\r
@@ -437,7 +432,6 @@ Mtftp6RrqConfigMcastUdpIo (
   return Udp6->Groups (Udp6, TRUE, &Group);\r
 }\r
 \r
-\r
 /**\r
   Process the OACK packet for Rrq.\r
 \r
@@ -455,22 +449,22 @@ Mtftp6RrqConfigMcastUdpIo (
 **/\r
 EFI_STATUS\r
 Mtftp6RrqHandleOack (\r
-  IN  MTFTP6_INSTANCE       *Instance,\r
-  IN  EFI_MTFTP6_PACKET     *Packet,\r
-  IN  UINT32                Len,\r
-  OUT NET_BUF               **UdpPacket,\r
-  OUT BOOLEAN               *IsCompleted\r
+  IN  MTFTP6_INSTANCE    *Instance,\r
+  IN  EFI_MTFTP6_PACKET  *Packet,\r
+  IN  UINT32             Len,\r
+  OUT NET_BUF            **UdpPacket,\r
+  OUT BOOLEAN            *IsCompleted\r
   )\r
 {\r
-  EFI_MTFTP6_OPTION         *Options;\r
-  UINT32                    Count;\r
-  MTFTP6_EXT_OPTION_INFO    ExtInfo;\r
-  EFI_STATUS                Status;\r
-  INTN                      Expected;\r
-  EFI_UDP6_PROTOCOL         *Udp6;\r
+  EFI_MTFTP6_OPTION       *Options;\r
+  UINT32                  Count;\r
+  MTFTP6_EXT_OPTION_INFO  ExtInfo;\r
+  EFI_STATUS              Status;\r
+  INTN                    Expected;\r
+  EFI_UDP6_PROTOCOL       *Udp6;\r
 \r
   *IsCompleted = FALSE;\r
-  Options = NULL;\r
+  Options      = NULL;\r
 \r
   //\r
   // If already started the master download, don't change the\r
@@ -479,7 +473,7 @@ Mtftp6RrqHandleOack (
   Expected = Mtftp6GetNextBlockNum (&Instance->BlkList);\r
   ASSERT (Expected != -1);\r
 \r
-  if (Instance->IsMaster && Expected != 1) {\r
+  if (Instance->IsMaster && (Expected != 1)) {\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -493,6 +487,7 @@ Mtftp6RrqHandleOack (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   ASSERT (Options != NULL);\r
 \r
   //\r
@@ -517,7 +512,7 @@ Mtftp6RrqHandleOack (
       Mtftp6SendError (\r
         Instance,\r
         EFI_MTFTP6_ERRORCODE_ILLEGAL_OPERATION,\r
-        (UINT8 *) "Malformatted OACK packet"\r
+        (UINT8 *)"Malformatted OACK packet"\r
         );\r
     }\r
 \r
@@ -525,7 +520,6 @@ Mtftp6RrqHandleOack (
   }\r
 \r
   if ((ExtInfo.BitMap & MTFTP6_OPT_MCAST_BIT) != 0) {\r
-\r
     //\r
     // Save the multicast info. Always update the Master, only update the\r
     // multicast IP address, block size, window size, timeoute at the first time. If IP\r
@@ -534,7 +528,7 @@ Mtftp6RrqHandleOack (
     Instance->IsMaster = ExtInfo.IsMaster;\r
 \r
     if (NetIp6IsUnspecifiedAddr (&Instance->McastIp)) {\r
-      if (NetIp6IsUnspecifiedAddr (&ExtInfo.McastIp) || ExtInfo.McastPort == 0) {\r
+      if (NetIp6IsUnspecifiedAddr (&ExtInfo.McastIp) || (ExtInfo.McastPort == 0)) {\r
         //\r
         // Free the received packet before send new packet in ReceiveNotify,\r
         // since the udpio might need to be reconfigured.\r
@@ -547,7 +541,7 @@ Mtftp6RrqHandleOack (
         Mtftp6SendError (\r
           Instance,\r
           EFI_MTFTP6_ERRORCODE_ILLEGAL_OPERATION,\r
-          (UINT8 *) "Illegal multicast setting"\r
+          (UINT8 *)"Illegal multicast setting"\r
           );\r
 \r
         return EFI_TFTP_ERROR;\r
@@ -562,7 +556,7 @@ Mtftp6RrqHandleOack (
         sizeof (EFI_IP_ADDRESS)\r
         );\r
 \r
-      Instance->McastPort  = ExtInfo.McastPort;\r
+      Instance->McastPort = ExtInfo.McastPort;\r
       if (Instance->McastUdpIo == NULL) {\r
         Instance->McastUdpIo = UdpIoCreateIo (\r
                                  Instance->Service->Controller,\r
@@ -575,7 +569,7 @@ Mtftp6RrqHandleOack (
           Status = gBS->OpenProtocol (\r
                           Instance->McastUdpIo->UdpHandle,\r
                           &gEfiUdp6ProtocolGuid,\r
-                          (VOID **) &Udp6,\r
+                          (VOID **)&Udp6,\r
                           Instance->Service->Image,\r
                           Instance->Handle,\r
                           EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
@@ -612,7 +606,7 @@ Mtftp6RrqHandleOack (
         Mtftp6SendError (\r
           Instance,\r
           EFI_MTFTP6_ERRORCODE_ACCESS_VIOLATION,\r
-          (UINT8 *) "Failed to create socket to receive multicast packet"\r
+          (UINT8 *)"Failed to create socket to receive multicast packet"\r
           );\r
 \r
         return Status;\r
@@ -633,9 +627,7 @@ Mtftp6RrqHandleOack (
         Instance->Timeout = ExtInfo.Timeout;\r
       }\r
     }\r
-\r
   } else {\r
-\r
     Instance->IsMaster = TRUE;\r
 \r
     if (ExtInfo.BlkSize != 0) {\r
@@ -661,10 +653,9 @@ Mtftp6RrqHandleOack (
   // Send an ACK to (Expected - 1) which is 0 for unicast download,\r
   // or tell the server we want to receive the Expected block.\r
   //\r
-  return Mtftp6RrqSendAck (Instance, (UINT16) (Expected - 1));\r
+  return Mtftp6RrqSendAck (Instance, (UINT16)(Expected - 1));\r
 }\r
 \r
-\r
 /**\r
   The packet process callback for Mtftp6 download.\r
 \r
@@ -677,22 +668,22 @@ Mtftp6RrqHandleOack (
 VOID\r
 EFIAPI\r
 Mtftp6RrqInput (\r
-  IN NET_BUF                *UdpPacket,\r
-  IN UDP_END_POINT          *UdpEpt,\r
-  IN EFI_STATUS             IoStatus,\r
-  IN VOID                   *Context\r
+  IN NET_BUF        *UdpPacket,\r
+  IN UDP_END_POINT  *UdpEpt,\r
+  IN EFI_STATUS     IoStatus,\r
+  IN VOID           *Context\r
   )\r
 {\r
-  MTFTP6_INSTANCE           *Instance;\r
-  EFI_MTFTP6_PACKET         *Packet;\r
-  BOOLEAN                   IsCompleted;\r
-  BOOLEAN                   IsMcast;\r
-  EFI_STATUS                Status;\r
-  UINT16                    Opcode;\r
-  UINT32                    TotalNum;\r
-  UINT32                    Len;\r
+  MTFTP6_INSTANCE    *Instance;\r
+  EFI_MTFTP6_PACKET  *Packet;\r
+  BOOLEAN            IsCompleted;\r
+  BOOLEAN            IsMcast;\r
+  EFI_STATUS         Status;\r
+  UINT16             Opcode;\r
+  UINT32             TotalNum;\r
+  UINT32             Len;\r
 \r
-  Instance = (MTFTP6_INSTANCE *) Context;\r
+  Instance = (MTFTP6_INSTANCE *)Context;\r
 \r
   NET_CHECK_SIGNATURE (Instance, MTFTP6_INSTANCE_SIGNATURE);\r
 \r
@@ -723,7 +714,8 @@ Mtftp6RrqInput (
         Ip6Swap128 (&UdpEpt->LocalAddr.v6),\r
         &Instance->McastIp,\r
         sizeof (EFI_IPv6_ADDRESS)\r
-        ) == 0) {\r
+        ) == 0)\r
+  {\r
     IsMcast = TRUE;\r
   } else {\r
     IsMcast = FALSE;\r
@@ -763,10 +755,9 @@ Mtftp6RrqInput (
       goto ON_EXIT;\r
     }\r
 \r
-    NetbufCopy (UdpPacket, 0, Len, (UINT8 *) Packet);\r
-\r
+    NetbufCopy (UdpPacket, 0, Len, (UINT8 *)Packet);\r
   } else {\r
-    Packet = (EFI_MTFTP6_PACKET *) NetbufGetByte (UdpPacket, 0, NULL);\r
+    Packet = (EFI_MTFTP6_PACKET *)NetbufGetByte (UdpPacket, 0, NULL);\r
     ASSERT (Packet != NULL);\r
   }\r
 \r
@@ -777,13 +768,13 @@ Mtftp6RrqInput (
   // if CheckPacket returns an EFI_ERROR code.\r
   //\r
   if ((Instance->Token->CheckPacket != NULL) &&\r
-      (Opcode == EFI_MTFTP6_OPCODE_OACK || Opcode == EFI_MTFTP6_OPCODE_ERROR)\r
-      ) {\r
-\r
+      ((Opcode == EFI_MTFTP6_OPCODE_OACK) || (Opcode == EFI_MTFTP6_OPCODE_ERROR))\r
+      )\r
+  {\r
     Status = Instance->Token->CheckPacket (\r
                                 &Instance->Mtftp6,\r
                                 Instance->Token,\r
-                                (UINT16) Len,\r
+                                (UINT16)Len,\r
                                 Packet\r
                                 );\r
 \r
@@ -804,7 +795,7 @@ Mtftp6RrqInput (
         Mtftp6SendError (\r
           Instance,\r
           EFI_MTFTP6_ERRORCODE_REQUEST_DENIED,\r
-          (UINT8 *) "User aborted the transfer"\r
+          (UINT8 *)"User aborted the transfer"\r
           );\r
       }\r
 \r
@@ -817,44 +808,46 @@ Mtftp6RrqInput (
   // Switch the process routines by the operation code.\r
   //\r
   switch (Opcode) {\r
-  case EFI_MTFTP6_OPCODE_DATA:\r
-    if ((Len > (UINT32) (MTFTP6_DATA_HEAD_LEN + Instance->BlkSize)) || (Len < (UINT32) MTFTP6_DATA_HEAD_LEN)) {\r
-      goto ON_EXIT;\r
-    }\r
-    //\r
-    // Handle the data packet of Rrq.\r
-    //\r
-    Status = Mtftp6RrqHandleData (\r
-               Instance,\r
-               Packet,\r
-               Len,\r
-               &UdpPacket,\r
-               &IsCompleted\r
-               );\r
-    break;\r
-\r
-  case EFI_MTFTP6_OPCODE_OACK:\r
-    if (IsMcast || Len <= MTFTP6_OPCODE_LEN) {\r
-      goto ON_EXIT;\r
-    }\r
-    //\r
-    // Handle the Oack packet of Rrq.\r
-    //\r
-    Status = Mtftp6RrqHandleOack (\r
-               Instance,\r
-               Packet,\r
-               Len,\r
-               &UdpPacket,\r
-               &IsCompleted\r
-               );\r
-    break;\r
-\r
-  default:\r
-    //\r
-    // Drop and return error if received error message.\r
-    //\r
-    Status = EFI_TFTP_ERROR;\r
-    break;\r
+    case EFI_MTFTP6_OPCODE_DATA:\r
+      if ((Len > (UINT32)(MTFTP6_DATA_HEAD_LEN + Instance->BlkSize)) || (Len < (UINT32)MTFTP6_DATA_HEAD_LEN)) {\r
+        goto ON_EXIT;\r
+      }\r
+\r
+      //\r
+      // Handle the data packet of Rrq.\r
+      //\r
+      Status = Mtftp6RrqHandleData (\r
+                 Instance,\r
+                 Packet,\r
+                 Len,\r
+                 &UdpPacket,\r
+                 &IsCompleted\r
+                 );\r
+      break;\r
+\r
+    case EFI_MTFTP6_OPCODE_OACK:\r
+      if (IsMcast || (Len <= MTFTP6_OPCODE_LEN)) {\r
+        goto ON_EXIT;\r
+      }\r
+\r
+      //\r
+      // Handle the Oack packet of Rrq.\r
+      //\r
+      Status = Mtftp6RrqHandleOack (\r
+                 Instance,\r
+                 Packet,\r
+                 Len,\r
+                 &UdpPacket,\r
+                 &IsCompleted\r
+                 );\r
+      break;\r
+\r
+    default:\r
+      //\r
+      // Drop and return error if received error message.\r
+      //\r
+      Status = EFI_TFTP_ERROR;\r
+      break;\r
   }\r
 \r
 ON_EXIT:\r
@@ -862,12 +855,14 @@ ON_EXIT:
   // Free the resources, then if !EFI_ERROR (Status), restart the\r
   // receive, otherwise end the session.\r
   //\r
-  if (Packet != NULL && TotalNum > 1) {\r
+  if ((Packet != NULL) && (TotalNum > 1)) {\r
     FreePool (Packet);\r
   }\r
+\r
   if (UdpPacket != NULL) {\r
     NetbufFree (UdpPacket);\r
   }\r
+\r
   if (!EFI_ERROR (Status) && !IsCompleted) {\r
     if (IsMcast) {\r
       Status = UdpIoRecvDatagram (\r
@@ -885,6 +880,7 @@ ON_EXIT:
                  );\r
     }\r
   }\r
+\r
   //\r
   // Clean up the current session if failed to continue.\r
   //\r
@@ -893,7 +889,6 @@ ON_EXIT:
   }\r
 }\r
 \r
-\r
 /**\r
   Start the Mtftp6 instance to download. It first initializes some\r
   of the internal states, then builds and sends an RRQ request packet.\r
@@ -908,11 +903,11 @@ ON_EXIT:
 **/\r
 EFI_STATUS\r
 Mtftp6RrqStart (\r
-  IN MTFTP6_INSTANCE        *Instance,\r
-  IN UINT16                 Operation\r
+  IN MTFTP6_INSTANCE  *Instance,\r
+  IN UINT16           Operation\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
+  EFI_STATUS  Status;\r
 \r
   //\r
   // The valid block number range are [1, 0xffff]. For example:\r
@@ -939,4 +934,3 @@ Mtftp6RrqStart (
            0\r
            );\r
 }\r
-\r