From 28525a4795a6ccee97edfbb1410b2f6313439c14 Mon Sep 17 00:00:00 2001 From: Sjur Braendeland Date: Wed, 28 Apr 2010 08:54:34 +0000 Subject: [PATCH] --- yaml --- r: 194603 b: refs/heads/master c: d3f744e0d6c1c27a10cdceac6eb946122188dbc9 h: refs/heads/master i: 194601: 87a793af9905b0766f9d23e747d02591416bccbe 194599: 5e60196744fa34f0bd4576743fd36e81a778ff8c v: v3 --- [refs] | 2 +- trunk/drivers/net/caif/caif_serial.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cfa5485bdb45..2a7f924d8ba1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a4900ac9f7d10ad062e54dd03125e3619e0ac17a +refs/heads/master: d3f744e0d6c1c27a10cdceac6eb946122188dbc9 diff --git a/trunk/drivers/net/caif/caif_serial.c b/trunk/drivers/net/caif/caif_serial.c index 38c0186cfbc2..09257ca8f563 100644 --- a/trunk/drivers/net/caif/caif_serial.c +++ b/trunk/drivers/net/caif/caif_serial.c @@ -197,7 +197,8 @@ static void ldisc_receive(struct tty_struct *tty, const u8 *data, /* Get a suitable caif packet and copy in data. */ skb = netdev_alloc_skb(ser->dev, count+1); - BUG_ON(skb == NULL); + if (skb == NULL) + return; p = skb_put(skb, count); memcpy(p, data, count); @@ -315,6 +316,8 @@ static int ldisc_open(struct tty_struct *tty) /* No write no play */ if (tty->ops->write == NULL) return -EOPNOTSUPP; + if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_TTY_CONFIG)) + return -EPERM; sprintf(name, "cf%s", tty->name); dev = alloc_netdev(sizeof(*ser), name, caifdev_setup);