2011-06-11 21:21:36

by Connor Hansen

[permalink] [raw]
Subject: [PATCH] drivers/bluetooth/bpa10x.c: missing kfrees

both bpa10x_submit_initr_urb() and bpa10x_submit_bulk_urb()
malloc a char buffer(buf) for usb_fill_init_usb() but fail to
free it after freeing the urb.

Likewise, bpa10x_send_frame() allocates a usb_ctrlrequest(dr)
for sending packets but does not free it after the
usb_fill_control_urb() call.

Signed-off-by: Connor Hansen <[email protected]>
---
drivers/bluetooth/bpa10x.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
index 751b338..7dfd9ca 100644
--- a/drivers/bluetooth/bpa10x.c
+++ b/drivers/bluetooth/bpa10x.c
@@ -254,6 +254,7 @@ static inline int bpa10x_submit_intr_urb(struct hci_dev *hdev)
}

usb_free_urb(urb);
+ kfree(buf);

return err;
}
@@ -295,6 +296,7 @@ static inline int bpa10x_submit_bulk_urb(struct hci_dev *hdev)
}

usb_free_urb(urb);
+ kfree(buf);

return err;
}
@@ -393,6 +395,7 @@ static int bpa10x_send_frame(struct sk_buff *skb)
skb->data, skb->len, bpa10x_tx_complete, skb);

hdev->stat.cmd_tx++;
+ kfree(df);
break;

case HCI_ACLDATA_PKT:
--
1.7.4.4


2011-06-11 21:26:01

by Connor Hansen

[permalink] [raw]
Subject: Re: [PATCH] drivers/bluetooth/bpa10x.c: missing kfrees

sorry this contains an error, I will redo the patch

On Sat, Jun 11, 2011 at 2:21 PM, Connor Hansen <[email protected]> wrote:
> both bpa10x_submit_initr_urb() and bpa10x_submit_bulk_urb()
> malloc a char buffer(buf) for usb_fill_init_usb() but fail to
> free it after freeing the urb.
>
> Likewise, bpa10x_send_frame() allocates a usb_ctrlrequest(dr)
> for sending packets but does not free it after the
> usb_fill_control_urb() call.
>
> Signed-off-by: Connor Hansen <[email protected]>
> ---
> drivers/bluetooth/bpa10x.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
> index 751b338..7dfd9ca 100644
> --- a/drivers/bluetooth/bpa10x.c
> +++ b/drivers/bluetooth/bpa10x.c
> @@ -254,6 +254,7 @@ static inline int bpa10x_submit_intr_urb(struct
hci_dev *hdev)
> }
>
> usb_free_urb(urb);
> + kfree(buf);
>
> return err;
> }
> @@ -295,6 +296,7 @@ static inline int bpa10x_submit_bulk_urb(struct
hci_dev *hdev)
> }
>
> usb_free_urb(urb);
> + kfree(buf);
>
> return err;
> }
> @@ -393,6 +395,7 @@ static int bpa10x_send_frame(struct sk_buff *skb)
> skb->data, skb->len, bpa10x_tx_complete,
skb);
>
> hdev->stat.cmd_tx++;
> + kfree(df);
> break;
>
> case HCI_ACLDATA_PKT:
> --
> 1.7.4.4
>
>