- Dirty temporary fix to unregress abiword/qemu.
Modified: trunk/reactos/lib/kernel32/misc/atom.c

Modified: trunk/reactos/lib/kernel32/misc/atom.c
--- trunk/reactos/lib/kernel32/misc/atom.c	2006-01-03 21:34:19 UTC (rev 20554)
+++ trunk/reactos/lib/kernel32/misc/atom.c	2006-01-03 22:25:09 UTC (rev 20555)
@@ -72,6 +72,7 @@
             /* Check if we can abuse the TEB */
             if (AnsiString.MaximumLength > 260)
             {
+RosHack:
                 /* We can't, allocate a new string */
                 AtomNameString = &UnicodeString;
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
@@ -80,8 +81,18 @@
             }
             else
             {
-                /* We can! Use the TEB */
+                /* 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,
                                                       FALSE);
@@ -171,6 +182,7 @@
             /* Check if we can abuse the TEB */
             if (AnsiString.MaximumLength > 260)
             {
+RosHack:
                 /* We can't, allocate a new string */
                 AtomNameString = &UnicodeString;
                 Status = RtlAnsiStringToUnicodeString(AtomNameString,
@@ -179,8 +191,18 @@
             }
             else
             {
-                /* We can! Use the TEB */
+                /* 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,
                                                       FALSE);