Message ID | 1444210399-3913-1-git-send-email-vincent.stehle@laposte.net (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
Hi Vincent, On Wed, Oct 07, 2015 at 11:33:19AM +0200, Vincent Stehlé wrote: > The function nfc_genl_llc_sdreq() can dereference the dev pointer while > it is NULL on its error path. Create a new error handling label to avoid > that. > > This fixes the following coccinelle error: > > ./net/nfc/netlink.c:1175:21-24: ERROR: dev is NULL but dereferenced. > > Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> > Cc: Thierry Escande <thierry.escande@linux.intel.com> > Cc: Samuel Ortiz <sameo@linux.intel.com> > --- > net/nfc/netlink.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c > index 853172c..51c48f0 100644 > --- a/net/nfc/netlink.c > +++ b/net/nfc/netlink.c > @@ -1111,7 +1111,7 @@ static int nfc_genl_llc_sdreq(struct sk_buff *skb, struct genl_info *info) > dev = nfc_get_device(idx); > if (!dev) { > rc = -ENODEV; > - goto exit; > + goto exit_nodev; > } Julia Lawall sent a better fix that I applied: - if (!dev) { - rc = -ENODEV; - goto exit; - } + if (!dev) + return -ENODEV; Cheers, Samuel. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index 853172c..51c48f0 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c @@ -1111,7 +1111,7 @@ static int nfc_genl_llc_sdreq(struct sk_buff *skb, struct genl_info *info) dev = nfc_get_device(idx); if (!dev) { rc = -ENODEV; - goto exit; + goto exit_nodev; } device_lock(&dev->dev); @@ -1176,6 +1176,7 @@ exit: nfc_put_device(dev); +exit_nodev: return rc; }
The function nfc_genl_llc_sdreq() can dereference the dev pointer while it is NULL on its error path. Create a new error handling label to avoid that. This fixes the following coccinelle error: ./net/nfc/netlink.c:1175:21-24: ERROR: dev is NULL but dereferenced. Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net> Cc: Thierry Escande <thierry.escande@linux.intel.com> Cc: Samuel Ortiz <sameo@linux.intel.com> --- net/nfc/netlink.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)