From 1d54a24d4dae9d37704c810a46681dca345d5c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Wed, 19 Sep 2007 22:14:21 +0000 Subject: [PATCH] correctly release resources on error in init, or on uninit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22263 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/network/bcm570x/b57um.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c index 0295747866..e50ac531bc 100644 --- a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c +++ b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c @@ -333,6 +333,10 @@ init_driver(void) #endif if (LM_GetAdapterInfo(&be_b57_dev_cards[cards_found].lm_dev) != LM_STATUS_SUCCESS) { + for (j = 0; j < cards_found; j++) { + free(dev_list[j]); + delete_sem(be_b57_dev_cards[j].packet_release_sem); + } put_module(B_PCI_MODULE_NAME); return ENODEV; } @@ -364,6 +368,7 @@ uninit_driver(void) delete_area(pUmDevice->lockmem_list[i]); delete_area(pUmDevice->mem_base); + delete_sem(be_b57_dev_cards[j].packet_release_sem); free((void *)dev_list[j]); }