Skip to content

Commit

Permalink
bt/rfcomm/tty: join error paths
Browse files Browse the repository at this point in the history
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ilpo Järvinen authored and David S. Miller committed Dec 15, 2008
1 parent 0eae1b9 commit 037322a
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions net/bluetooth/rfcomm/tty.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,18 +298,15 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)
out:
write_unlock_bh(&rfcomm_dev_lock);

if (err < 0) {
kfree(dev);
return err;
}
if (err < 0)
goto free;

dev->tty_dev = tty_register_device(rfcomm_tty_driver, dev->id, NULL);

if (IS_ERR(dev->tty_dev)) {
err = PTR_ERR(dev->tty_dev);
list_del(&dev->list);
kfree(dev);
return err;
goto free;
}

dev_set_drvdata(dev->tty_dev, dev);
Expand All @@ -321,6 +318,10 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)
BT_ERR("Failed to create channel attribute");

return dev->id;

free:
kfree(dev);
return err;
}

static void rfcomm_dev_del(struct rfcomm_dev *dev)
Expand Down

0 comments on commit 037322a

Please sign in to comment.