diff options
author | Oliver Hartkopp <oliver.hartkopp@volkswagen.de> | 2008-07-06 08:38:43 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-06 08:38:43 +0200 |
commit | 7f2d38eb7a42bea1c1df51bbdaa2ca0f0bdda07f (patch) | |
tree | 930ee4b119242ea70d020521f217b42090e42b6e /net/can/raw.c | |
parent | fs_enet: restore promiscuous and multicast settings in restart() (diff) | |
download | linux-7f2d38eb7a42bea1c1df51bbdaa2ca0f0bdda07f.tar.xz linux-7f2d38eb7a42bea1c1df51bbdaa2ca0f0bdda07f.zip |
can: add sanity checks
Even though the CAN netlayer only deals with CAN netdevices, the
netlayer interface to the userspace and to the device layer should
perform some sanity checks.
This patch adds several sanity checks that mainly prevent userspace apps
to send broken content into the system that may be misinterpreted by
some other userspace application.
Signed-off-by: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
Signed-off-by: Urs Thuermann <urs.thuermann@volkswagen.de>
Acked-by: Andre Naujoks <nautsch@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/can/raw.c')
-rw-r--r-- | net/can/raw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/can/raw.c b/net/can/raw.c index 69877b8e7e9c..3e46ee36a1aa 100644 --- a/net/can/raw.c +++ b/net/can/raw.c @@ -632,6 +632,9 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock, } else ifindex = ro->ifindex; + if (size != sizeof(struct can_frame)) + return -EINVAL; + dev = dev_get_by_index(&init_net, ifindex); if (!dev) return -ENXIO; |