IntRegisterClass did not check for NULL pointer when it alloc memory.
Modified: trunk/reactos/subsys/win32k/ntuser/class.c

Modified: trunk/reactos/subsys/win32k/ntuser/class.c
--- trunk/reactos/subsys/win32k/ntuser/class.c	2005-12-29 12:13:02 UTC (rev 20418)
+++ trunk/reactos/subsys/win32k/ntuser/class.c	2005-12-29 12:40:31 UTC (rev 20419)
@@ -208,6 +208,27 @@
    Class->hIconSm = lpwcx->hIconSm;
    Class->Atom = Atom;
    
+   if (MenuName->Length == 0)
+   {
+      Class->lpszMenuName.Length =
+         Class->lpszMenuName.MaximumLength = 0;
+      Class->lpszMenuName.Buffer = MenuName->Buffer;
+   }
+   else
+   {
+      Class->lpszMenuName.Length =
+         Class->lpszMenuName.MaximumLength = MenuName->MaximumLength;
+      Class->lpszMenuName.Buffer = ExAllocatePoolWithTag(PagedPool, Class->lpszMenuName.MaximumLength, TAG_STRING);
+      
+      if (Class->lpszMenuName.Buffer == NULL) 
+      {
+         SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY);
+         return(FALSE);
+      }
+      
+      RtlCopyUnicodeString(&Class->lpszMenuName, MenuName);
+   }
+   
    if (wpExtra == NULL)
    {
       if (Flags & REGISTERCLASS_ANSI)
@@ -235,19 +256,7 @@
       }
    }
    
-   if (MenuName->Length == 0)
-   {
-      Class->lpszMenuName.Length =
-         Class->lpszMenuName.MaximumLength = 0;
-      Class->lpszMenuName.Buffer = MenuName->Buffer;
-   }
-   else
-   {
-      Class->lpszMenuName.Length =
-         Class->lpszMenuName.MaximumLength = MenuName->MaximumLength;
-      Class->lpszMenuName.Buffer = ExAllocatePoolWithTag(PagedPool, Class->lpszMenuName.MaximumLength, TAG_STRING);
-      RtlCopyUnicodeString(&Class->lpszMenuName, MenuName);
-   }
+  
    
    /* Extra class data */
    if (Class->cbClsExtra)