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); }