From 86fee1806c73c0f87c1ef90053824309c25ed2e5 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 10 Jan 2008 11:45:20 +0000 Subject: [PATCH] Reset the freed device name list so it is not freed a second time on republish. Also check the allocation of the new name list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23337 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/bus/usb/usb_raw.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/add-ons/kernel/drivers/bus/usb/usb_raw.cpp b/src/add-ons/kernel/drivers/bus/usb/usb_raw.cpp index a3b2634a6b..b30acfbc61 100644 --- a/src/add-ons/kernel/drivers/bus/usb/usb_raw.cpp +++ b/src/add-ons/kernel/drivers/bus/usb/usb_raw.cpp @@ -611,6 +611,7 @@ uninit_driver() for (int32 i = 1; gDeviceNames[i]; i++) free(gDeviceNames[i]); free(gDeviceNames); + gDeviceNames = NULL; } benaphore_destroy(&gDeviceListLock); @@ -626,10 +627,14 @@ publish_devices() for (int32 i = 1; gDeviceNames[i]; i++) free(gDeviceNames[i]); free(gDeviceNames); + gDeviceNames = NULL; } int32 index = 0; gDeviceNames = (char **)malloc(sizeof(char *) * (gDeviceCount + 2)); + if (!gDeviceNames) + return NULL; + gDeviceNames[index++] = DEVICE_NAME; benaphore_lock(&gDeviceListLock);