Skip to content

Commit

Permalink
Bluetooth: dtl1: Fix memleak in probe()
Browse files Browse the repository at this point in the history
We currently leak the driver info structure if dtl1_config fails. If we add a
kfree() to dtl1_release to fix this, then dtl1_release and dtl1_detach are
identical so this merges both functions.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
  • Loading branch information
David Herrmann authored and Johan Hedberg committed Feb 13, 2012
1 parent f5fd5ba commit 5a0b815
Showing 1 changed file with 3 additions and 17 deletions.
20 changes: 3 additions & 17 deletions drivers/bluetooth/dtl1_cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,6 @@ typedef struct dtl1_info_t {


static int dtl1_config(struct pcmcia_device *link);
static void dtl1_release(struct pcmcia_device *link);

static void dtl1_detach(struct pcmcia_device *p_dev);


/* Transmit states */
Expand Down Expand Up @@ -579,8 +576,8 @@ static void dtl1_detach(struct pcmcia_device *link)
{
dtl1_info_t *info = link->priv;

dtl1_release(link);

dtl1_close(info);
pcmcia_disable_device(link);
kfree(info);
}

Expand Down Expand Up @@ -619,21 +616,10 @@ static int dtl1_config(struct pcmcia_device *link)
return 0;

failed:
dtl1_release(link);
dtl1_detach(link);
return -ENODEV;
}


static void dtl1_release(struct pcmcia_device *link)
{
dtl1_info_t *info = link->priv;

dtl1_close(info);

pcmcia_disable_device(link);
}


static const struct pcmcia_device_id dtl1_ids[] = {
PCMCIA_DEVICE_PROD_ID12("Nokia Mobile Phones", "DTL-1", 0xe1bfdd64, 0xe168480d),
PCMCIA_DEVICE_PROD_ID12("Nokia Mobile Phones", "DTL-4", 0xe1bfdd64, 0x9102bc82),
Expand Down

0 comments on commit 5a0b815

Please sign in to comment.