From 5b6cdc4c7b36a945c960f2808a47579b5ddf0593 Mon Sep 17 00:00:00 2001 From: Salvatore Benedetto Date: Tue, 22 Jan 2008 17:54:59 +0000 Subject: [PATCH] * fixed memory leak: if InitKernelAccess failed data was not deleted git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23703 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/busses/usb/ehci.cpp | 4 +++- src/add-ons/kernel/busses/usb/uhci.cpp | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/busses/usb/ehci.cpp b/src/add-ons/kernel/busses/usb/ehci.cpp index 236d4f77c1..c75a4c29a0 100644 --- a/src/add-ons/kernel/busses/usb/ehci.cpp +++ b/src/add-ons/kernel/busses/usb/ehci.cpp @@ -847,8 +847,10 @@ EHCI::AddPendingTransfer(Transfer *transfer, ehci_qh *queueHead, return B_NO_MEMORY; status_t result = transfer->InitKernelAccess(); - if (result < B_OK) + if (result < B_OK) { + delete data; return result; + } data->transfer = transfer; data->queue_head = queueHead; diff --git a/src/add-ons/kernel/busses/usb/uhci.cpp b/src/add-ons/kernel/busses/usb/uhci.cpp index 50501f7826..8d44aec44d 100644 --- a/src/add-ons/kernel/busses/usb/uhci.cpp +++ b/src/add-ons/kernel/busses/usb/uhci.cpp @@ -754,8 +754,10 @@ UHCI::AddPendingTransfer(Transfer *transfer, Queue *queue, return B_NO_MEMORY; status_t result = transfer->InitKernelAccess(); - if (result < B_OK) + if (result < B_OK) { + delete data; return result; + } data->transfer = transfer; data->queue = queue; @@ -795,8 +797,10 @@ UHCI::AddPendingIsochronousTransfer(Transfer *transfer, uhci_td **isoRequest, return B_NO_MEMORY; status_t result = transfer->InitKernelAccess(); - if (result < B_OK) + if (result < B_OK) { + delete data; return result; + } data->transfer = transfer; data->descriptors = isoRequest;