[ros-diffs] [dgorbachev] 40601: More error checks. Bug #4393.

dgorbachev at svn.reactos.org dgorbachev at svn.reactos.org
Mon Apr 20 05:16:13 CEST 2009


Author: dgorbachev
Date: Mon Apr 20 07:16:12 2009
New Revision: 40601

URL: http://svn.reactos.org/svn/reactos?rev=40601&view=rev
Log:
More error checks. Bug #4393.

Modified:
    trunk/reactos/base/setup/usetup/interface/usetup.c
    trunk/reactos/base/setup/usetup/settings.c
    trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c

Modified: trunk/reactos/base/setup/usetup/interface/usetup.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/interface/usetup.c?rev=40601&r1=40600&r2=40601&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/interface/usetup.c [iso-8859-1] Mon Apr 20 07:16:12 2009
@@ -580,6 +580,11 @@
     if (LayoutList == NULL)
     {
         LayoutList = CreateKeyboardLayoutList(SetupInf, DefaultKBLayout);
+        if (LayoutList == NULL)
+        {
+            /* FIXME: Handle error! */
+            return;
+        }
     }
 
     ListEntry = GetFirstListEntry(LayoutList);
@@ -841,9 +846,9 @@
 
 			ListEntry = GetNextListEntry(ListEntry);
 		}
-        SetConsoleCodePage();
-
-	    return INSTALL_INTRO_PAGE;
+		SetConsoleCodePage();
+
+		return INSTALL_INTRO_PAGE;
     }
 
     return LANGUAGE_PAGE;

Modified: trunk/reactos/base/setup/usetup/settings.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/settings.c?rev=40601&r1=40600&r2=40601&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/settings.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/settings.c [iso-8859-1] Mon Apr 20 07:16:12 2009
@@ -825,6 +825,7 @@
     PWCHAR UserData;
     const MUI_LAYOUTS * LayoutsList;
     ULONG uIndex = 0;
+    BOOL KeyboardLayoutsFound = FALSE;
 
     /* Get default layout id */
     if (!SetupFindFirstLineW (InfFile, L"NLS", L"DefaultLayout", &Context))
@@ -856,7 +857,7 @@
                 /* FIXME: Handle error! */
                 DPRINT("INF_GetData() failed\n");
                 DestroyGenericList(List, FALSE);
-                break;
+                return NULL;
             }
 
             if (_wcsicmp(LayoutsList[uIndex].LayoutID, KeyName) == 0)
@@ -868,6 +869,9 @@
                 if (UserData == NULL)
                 {
                     /* FIXME: Handle error! */
+                    DPRINT("RtlAllocateHeap() failed\n");
+                    DestroyGenericList(List, FALSE);
+                    return NULL;
                 }
 
                 wcscpy(UserData, KeyName);
@@ -877,13 +881,22 @@
                                        Buffer,
                                        UserData,
                                        _wcsicmp(KeyName, DefaultKBLayout) ? FALSE : TRUE);
+                KeyboardLayoutsFound = TRUE;
             }
-            
+
         } while (SetupFindNextLine(&Context, &Context));
 
         uIndex++;
 
     } while (LayoutsList[uIndex].LangID != NULL);
+
+    /* FIXME: Handle this case */
+    if (!KeyboardLayoutsFound)
+    {
+        DPRINT1("No keyboard layouts have been found\n");
+        DestroyGenericList(List, FALSE);
+        return NULL;
+    }
 
     return List;
 }

Modified: trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c?rev=40601&r1=40600&r2=40601&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c [iso-8859-1] Mon Apr 20 07:16:12 2009
@@ -330,7 +330,7 @@
     rc = RegQueryValue(hKey, szIdBuffer, NULL, (PUCHAR)szNameBuffer, &BufferSize);
     if (rc != ERROR_SUCCESS) {
 
-        strcpy(szErrorOut, "Language Default setting exists, but isn't readable");
+        sprintf(szErrorOut, "Language Default setting exists, but isn't readable (%S)", szIdBuffer);
         return(FALSE);
     }
 



More information about the Ros-diffs mailing list