* 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
This commit is contained in:
@@ -847,8 +847,10 @@ EHCI::AddPendingTransfer(Transfer *transfer, ehci_qh *queueHead,
|
|||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
status_t result = transfer->InitKernelAccess();
|
status_t result = transfer->InitKernelAccess();
|
||||||
if (result < B_OK)
|
if (result < B_OK) {
|
||||||
|
delete data;
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
data->transfer = transfer;
|
data->transfer = transfer;
|
||||||
data->queue_head = queueHead;
|
data->queue_head = queueHead;
|
||||||
|
|||||||
@@ -754,8 +754,10 @@ UHCI::AddPendingTransfer(Transfer *transfer, Queue *queue,
|
|||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
status_t result = transfer->InitKernelAccess();
|
status_t result = transfer->InitKernelAccess();
|
||||||
if (result < B_OK)
|
if (result < B_OK) {
|
||||||
|
delete data;
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
data->transfer = transfer;
|
data->transfer = transfer;
|
||||||
data->queue = queue;
|
data->queue = queue;
|
||||||
@@ -795,8 +797,10 @@ UHCI::AddPendingIsochronousTransfer(Transfer *transfer, uhci_td **isoRequest,
|
|||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
status_t result = transfer->InitKernelAccess();
|
status_t result = transfer->InitKernelAccess();
|
||||||
if (result < B_OK)
|
if (result < B_OK) {
|
||||||
|
delete data;
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
data->transfer = transfer;
|
data->transfer = transfer;
|
||||||
data->descriptors = isoRequest;
|
data->descriptors = isoRequest;
|
||||||
|
|||||||
Reference in New Issue
Block a user