ip6_vti.c (188933ac139a6f8ab06cad369bd0200af947b00d) ip6_vti.c (63159f29be1df7f93563a8a0f78c5e65fc844ed6)
1/*
2 * IPv6 virtual tunneling interface
3 *
4 * Copyright (C) 2013 secunet Security Networks AG
5 *
6 * Author:
7 * Steffen Klassert <steffen.klassert@secunet.com>
8 *

--- 204 unchanged lines hidden (view full) ---

213 int err;
214
215 if (p->name[0])
216 strlcpy(name, p->name, IFNAMSIZ);
217 else
218 sprintf(name, "ip6_vti%%d");
219
220 dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, vti6_dev_setup);
1/*
2 * IPv6 virtual tunneling interface
3 *
4 * Copyright (C) 2013 secunet Security Networks AG
5 *
6 * Author:
7 * Steffen Klassert <steffen.klassert@secunet.com>
8 *

--- 204 unchanged lines hidden (view full) ---

213 int err;
214
215 if (p->name[0])
216 strlcpy(name, p->name, IFNAMSIZ);
217 else
218 sprintf(name, "ip6_vti%%d");
219
220 dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN, vti6_dev_setup);
221 if (dev == NULL)
221 if (!dev)
222 goto failed;
223
224 dev_net_set(dev, net);
225
226 t = netdev_priv(dev);
227 t->parms = *p;
228 t->net = dev_net(dev);
229

--- 481 unchanged lines hidden (view full) ---

711 err = -EFAULT;
712 break;
713 }
714 vti6_parm_from_user(&p1, &p);
715 t = vti6_locate(net, &p1, 0);
716 } else {
717 memset(&p, 0, sizeof(p));
718 }
222 goto failed;
223
224 dev_net_set(dev, net);
225
226 t = netdev_priv(dev);
227 t->parms = *p;
228 t->net = dev_net(dev);
229

--- 481 unchanged lines hidden (view full) ---

711 err = -EFAULT;
712 break;
713 }
714 vti6_parm_from_user(&p1, &p);
715 t = vti6_locate(net, &p1, 0);
716 } else {
717 memset(&p, 0, sizeof(p));
718 }
719 if (t == NULL)
719 if (!t)
720 t = netdev_priv(dev);
721 vti6_parm_to_user(&p, &t->parms);
722 if (copy_to_user(ifr->ifr_ifru.ifru_data, &p, sizeof(p)))
723 err = -EFAULT;
724 break;
725 case SIOCADDTUNNEL:
726 case SIOCCHGTUNNEL:
727 err = -EPERM;

--- 34 unchanged lines hidden (view full) ---

762
763 if (dev == ip6n->fb_tnl_dev) {
764 err = -EFAULT;
765 if (copy_from_user(&p, ifr->ifr_ifru.ifru_data, sizeof(p)))
766 break;
767 err = -ENOENT;
768 vti6_parm_from_user(&p1, &p);
769 t = vti6_locate(net, &p1, 0);
720 t = netdev_priv(dev);
721 vti6_parm_to_user(&p, &t->parms);
722 if (copy_to_user(ifr->ifr_ifru.ifru_data, &p, sizeof(p)))
723 err = -EFAULT;
724 break;
725 case SIOCADDTUNNEL:
726 case SIOCCHGTUNNEL:
727 err = -EPERM;

--- 34 unchanged lines hidden (view full) ---

762
763 if (dev == ip6n->fb_tnl_dev) {
764 err = -EFAULT;
765 if (copy_from_user(&p, ifr->ifr_ifru.ifru_data, sizeof(p)))
766 break;
767 err = -ENOENT;
768 vti6_parm_from_user(&p1, &p);
769 t = vti6_locate(net, &p1, 0);
770 if (t == NULL)
770 if (!t)
771 break;
772 err = -EPERM;
773 if (t->dev == ip6n->fb_tnl_dev)
774 break;
775 dev = t->dev;
776 }
777 err = 0;
778 unregister_netdevice(dev);

--- 401 unchanged lines hidden ---
771 break;
772 err = -EPERM;
773 if (t->dev == ip6n->fb_tnl_dev)
774 break;
775 dev = t->dev;
776 }
777 err = 0;
778 unregister_netdevice(dev);

--- 401 unchanged lines hidden ---