BOOLEAN Syn;\r
UINT32 DataLen;\r
\r
- ASSERT ((Nbuf != NULL) && (Nbuf->Tcp == NULL) && (TcpVerifySegment (Nbuf) != 0));\r
+ ASSERT ((Nbuf != NULL) && (Nbuf->Tcp == NULL));\r
+\r
+ if (TcpVerifySegment (Nbuf) == 0) {\r
+ return -1; \r
+ }\r
\r
DataLen = Nbuf->TotalSize;\r
\r
Nbuf = TcpGetSegmentSock (Tcb, Seq, Len);\r
}\r
\r
- ASSERT (TcpVerifySegment (Nbuf) != 0);\r
+ if (TcpVerifySegment (Nbuf) == 0) {\r
+ NetbufFree (Nbuf);\r
+ return NULL;\r
+ }\r
+ \r
return Nbuf;\r
}\r
\r
return -1;\r
}\r
\r
- ASSERT (TcpVerifySegment (Nbuf) != 0);\r
+ if (TcpVerifySegment (Nbuf) == 0) {\r
+ goto OnError;\r
+ }\r
\r
if (TcpTransmitSegment (Tcb, Nbuf) != 0) {\r
goto OnError;\r
Seg->End = End;\r
Seg->Flag = Flag;\r
\r
- ASSERT (TcpVerifySegment (Nbuf) != 0);\r
- ASSERT (TcpCheckSndQue (&Tcb->SndQue) != 0);\r
+ if (TcpVerifySegment (Nbuf) == 0 || TcpCheckSndQue (&Tcb->SndQue) == 0) {\r
+ DEBUG (\r
+ (EFI_D_ERROR,\r
+ "TcpToSendData: discard a broken segment for TCB %p\n",\r
+ Tcb)\r
+ );\r
+ goto OnError;\r
+ }\r
\r
//\r
// Don't send an empty segment here.\r
Tcb)\r
);\r
\r
- NetbufFree (Nbuf);\r
- return Sent;\r
+ goto OnError;\r
}\r
\r
if (TcpTransmitSegment (Tcb, Nbuf) != 0) {\r