diff --git a/reactos/lib/kernel32/misc/atom.c b/reactos/lib/kernel32/misc/atom.c index 485af4fd2be..c88a4ca66dc 100644 --- a/reactos/lib/kernel32/misc/atom.c +++ b/reactos/lib/kernel32/misc/atom.c @@ -72,7 +72,6 @@ InternalAddAtom(BOOLEAN Local, /* Check if we can abuse the TEB */ if (AnsiString.MaximumLength > 260) { -RosHack: /* We can't, allocate a new string */ AtomNameString = &UnicodeString; Status = RtlAnsiStringToUnicodeString(AtomNameString, @@ -84,14 +83,6 @@ RosHack: /* We can! Get the TEB String */ AtomNameString = &NtCurrentTeb()->StaticUnicodeString; - /* FIXME: HACK! */ - if (!AtomNameString->MaximumLength) - { - DPRINT1("Hit the ROS TEB Static Unicode String Bug\n", - "Please try to fix the underlying problem!!!\n"); - goto RosHack; - } - /* Convert it into the TEB */ Status = RtlAnsiStringToUnicodeString(AtomNameString, &AnsiString, @@ -182,7 +173,6 @@ InternalFindAtom(BOOLEAN Local, /* Check if we can abuse the TEB */ if (AnsiString.MaximumLength > 260) { -RosHack: /* We can't, allocate a new string */ AtomNameString = &UnicodeString; Status = RtlAnsiStringToUnicodeString(AtomNameString, @@ -194,14 +184,6 @@ RosHack: /* We can! Get the TEB String */ AtomNameString = &NtCurrentTeb()->StaticUnicodeString; - /* FIXME: HACK! */ - if (!AtomNameString->MaximumLength) - { - DPRINT1("Hit the ROS TEB Static Unicode String Bug\n", - "Please try to fix the underlying problem!!!\n"); - goto RosHack; - } - /* Convert it into the TEB */ Status = RtlAnsiStringToUnicodeString(AtomNameString, &AnsiString, diff --git a/reactos/lib/ntdll/ldr/startup.c b/reactos/lib/ntdll/ldr/startup.c index 7cfcbb44f33..2030dbaaf62 100644 --- a/reactos/lib/ntdll/ldr/startup.c +++ b/reactos/lib/ntdll/ldr/startup.c @@ -377,6 +377,11 @@ LdrpInit(PCONTEXT Context, /* Load execution options */ LoadImageFileExecutionOptions(Peb); + /* Initialize the static teb string */ + NtCurrentTeb()->StaticUnicodeString.Length = 0; + NtCurrentTeb()->StaticUnicodeString.MaximumLength = sizeof(NtCurrentTeb()->StaticUnicodeBuffer); + NtCurrentTeb()->StaticUnicodeString.Buffer = NtCurrentTeb()->StaticUnicodeBuffer; + /* build full ntdll path */ wcscpy (FullNtDllPath, SharedUserData->NtSystemRoot); wcscat (FullNtDllPath, L"\\system32\\ntdll.dll");