From 8395debafafa8f72671e74d97812a43e420e11c9 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Fri, 12 Sep 2008 16:48:41 +0000 Subject: [PATCH] * CID 7: The fObjectArray that holds the usb_id to object association was never freed. * Also the allocation of said array was not checked. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27455 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/usb/Stack.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/add-ons/kernel/bus_managers/usb/Stack.cpp b/src/add-ons/kernel/bus_managers/usb/Stack.cpp index 8e9b25fba1..370b185e35 100644 --- a/src/add-ons/kernel/bus_managers/usb/Stack.cpp +++ b/src/add-ons/kernel/bus_managers/usb/Stack.cpp @@ -33,6 +33,11 @@ Stack::Stack() size_t objectArraySize = fObjectMaxCount * sizeof(Object *); fObjectArray = (Object **)malloc(objectArraySize); + if (fObjectArray == NULL) { + TRACE_ERROR(("USB Stack: failed to allocate object array\n")); + return; + } + memset(fObjectArray, 0, objectArraySize); fAllocator = new(std::nothrow) PhysicalMemoryAllocator("USB Stack Allocator", @@ -113,6 +118,7 @@ Stack::~Stack() } delete fAllocator; + free(fObjectArray); }