summaryrefslogtreecommitdiffstats
path: root/net/rose
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2015-06-19 00:46:53 +0200
committerDavid S. Miller <davem@davemloft.net>2015-06-23 03:26:27 -0700
commitd496f7842aada20c61e6044b3395383fa972872c (patch)
treeaa1cc7e0b59bf22f572ac3fc3ebfc4be5c6af6fa /net/rose
parentdfea2aa654243f70dc53b8648d0bbdeec55a7df1 (diff)
downloadlinux-0-day-d496f7842aada20c61e6044b3395383fa972872c.tar.gz
linux-0-day-d496f7842aada20c61e6044b3395383fa972872c.tar.xz
NET: ROSE: Don't dereference NULL neighbour pointer.
A ROSE socket doesn't necessarily always have a neighbour pointer so check if the neighbour pointer is valid before dereferencing it. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Tested-by: Bernard Pidoux <f6bvp@free.fr> Cc: stable@vger.kernel.org #2.6.11+ Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rose')
-rw-r--r--net/rose/af_rose.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index 8ae603069a1a1..dd304bc40788d 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -192,7 +192,8 @@ static void rose_kill_by_device(struct net_device *dev)
if (rose->device == dev) {
rose_disconnect(s, ENETUNREACH, ROSE_OUT_OF_ORDER, 0);
- rose->neighbour->use--;
+ if (rose->neighbour)
+ rose->neighbour->use--;
rose->device = NULL;
}
}