Fixed the EnvP array passed to Proc_StartUser not being NULL terminated
[tpg/acess2.git] / Kernel / drv / pci.c
index dfbc8ca..20eb932 100644 (file)
@@ -88,6 +88,10 @@ int PCI_Install(char **Arguments)
        \r
        // Build Portmap\r
        gaPCI_PortBitmap = malloc( 1 << 13 );\r
+       if( !gaPCI_PortBitmap ) {\r
+               Log_Error("PCI", "Unable to allocate %i bytes for bitmap", 1 << 13);\r
+               return MODULE_ERR_MALLOC;\r
+       }\r
        memset( gaPCI_PortBitmap, 0, 1 << 13 );\r
        for( i = 0; i < MAX_RESERVED_PORT / 32; i ++ )\r
                gaPCI_PortBitmap[i] = -1;\r
@@ -110,13 +114,13 @@ int PCI_Install(char **Arguments)
                                        space += SPACE_STEP;\r
                                        tmpPtr = realloc(gPCI_Devices, space*sizeof(tPCIDevice));\r
                                        if(tmpPtr == NULL)\r
-                                               break;\r
+                                               return MODULE_ERR_MALLOC;\r
                                        gPCI_Devices = tmpPtr;\r
                                }\r
                                if(devInfo.oc == PCI_OC_PCIBRIDGE)\r
                                {\r
                                        #if LIST_DEVICES\r
-                                       Log("[PCI  ] Bridge @ %i,%i:%i (0x%x:0x%x)",\r
+                                       Log_Log("PCI", "Bridge @ %i,%i:%i (0x%x:0x%x)",\r
                                                bus, dev, fcn, devInfo.vendor, devInfo.device);\r
                                        #endif\r
                                        giPCI_BusCount++;\r
@@ -124,7 +128,7 @@ int PCI_Install(char **Arguments)
                                else\r
                                {\r
                                        #if LIST_DEVICES\r
-                                       Log("[PCI  ] Device %i,%i:%i %04x => 0x%04x:0x%04x",\r
+                                       Log_Log("PCI", "Device %i,%i:%i %04x => 0x%04x:0x%04x",\r
                                                bus, dev, fcn, devInfo.oc, devInfo.vendor, devInfo.device);\r
                                        #endif\r
                                }\r
@@ -141,22 +145,20 @@ int PCI_Install(char **Arguments)
                                                break;\r
                                }\r
                        }\r
-                       if(tmpPtr != gPCI_Devices)\r
-                               break;\r
                }\r
-               if(tmpPtr != gPCI_Devices)\r
-                       break;\r
        }\r
        \r
-       if(giPCI_DeviceCount == 0)\r
+       if(giPCI_DeviceCount == 0) {\r
+               Log_Notice("PCI", "No devices were found");\r
                return MODULE_ERR_NOTNEEDED;\r
+       }\r
        \r
        tmpPtr = realloc(gPCI_Devices, giPCI_DeviceCount*sizeof(tPCIDevice));\r
        if(tmpPtr == NULL)\r
                return MODULE_ERR_MALLOC;\r
        gPCI_Devices = tmpPtr;\r
        \r
-       // Complete Driver Structure    \r
+       // Complete Driver Structure\r
        gPCI_DriverStruct.RootNode.Size = giPCI_DeviceCount;\r
        \r
        // And add to DevFS\r

UCC git Repository :: git.ucc.asn.au