X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=net%2Fcan%2Fraw.c;h=6e0663faaf9fcdea78d0f57947489e429d764cdd;hb=9a5467fd600669cda488771dac3e951034fe2b08;hp=69877b8e7e9c772be9479bced40b6b8273662322;hpb=a177ba3b7a08beef3f0fe74efa0f90701891945a;p=linux-2.6 diff --git a/net/can/raw.c b/net/can/raw.c index 69877b8e7e..6e0663faaf 100644 --- a/net/can/raw.c +++ b/net/can/raw.c @@ -210,7 +210,7 @@ static int raw_notifier(struct notifier_block *nb, struct raw_sock *ro = container_of(nb, struct raw_sock, notifier); struct sock *sk = &ro->sk; - if (dev_net(dev) != &init_net) + if (!net_eq(dev_net(dev), &init_net)) return NOTIFY_DONE; if (dev->type != ARPHRD_CAN) @@ -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;