[TCPIP] Don't assume the TEB is always defined
authorPierre Schweitzer <pierre@reactos.org>
Mon, 31 Dec 2018 12:59:58 +0000 (13:59 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Mon, 31 Dec 2018 13:00:34 +0000 (14:00 +0100)
Fixes the crash in kmtest:TcpIpConnect test.

drivers/network/tcpip/tcpip/fileobjs.c

index 400f956..f050a09 100644 (file)
@@ -396,6 +396,7 @@ NTSTATUS FileOpenAddress(
   PVOID Options)
 {
   PADDRESS_FILE AddrFile;
+  PTEB Teb;
 
   TI_DbgPrint(MID_TRACE, ("Called (Proto %d).\n", Protocol));
 
@@ -429,7 +430,12 @@ NTSTATUS FileOpenAddress(
   AddrFile->BCast = 1;
   AddrFile->HeaderIncl = 1;
   AddrFile->ProcessId = PsGetCurrentProcessId();
-  AddrFile->SubProcessTag = ((PTEB)PsGetCurrentThreadTeb())->SubProcessTag;
+
+  Teb = PsGetCurrentThreadTeb();
+  if (Teb != NULL) {
+    AddrFile->SubProcessTag = Teb->SubProcessTag;
+  }
+
   KeQuerySystemTime(&AddrFile->CreationTime);
 
   /* Make sure address is a local unicast address or 0 */