X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fappletalk%2Fddp.c;h=588cbe1ec16f4e3fcb7d56671757ea68c16978cc;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=4170de1a078ed7b0a069f03143bbe0dea4824af0;hpb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;p=linux-2.6.git diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c index 4170de1a0..588cbe1ec 100644 --- a/net/appletalk/ddp.c +++ b/net/appletalk/ddp.c @@ -61,16 +61,6 @@ #include #include -extern void aarp_cleanup_module(void); - -extern void aarp_probe_network(struct atalk_iface *atif); -extern int aarp_proxy_probe_network(struct atalk_iface *atif, - struct atalk_addr *sa); -extern void aarp_proxy_remove(struct net_device *dev, struct atalk_addr *sa); - -extern void atalk_register_sysctl(void); -extern void atalk_unregister_sysctl(void); - struct datalink_proto *ddp_dl, *aarp_dl; static struct proto_ops atalk_dgram_ops; @@ -908,12 +898,12 @@ static int atrtr_ioctl(unsigned int cmd, void __user *arg) case SIOCADDRT: { struct net_device *dev = NULL; - /* - * FIXME: the name of the device is still in user - * space, isn't it? - */ if (rt.rt_dev) { - dev = __dev_get_by_name(rt.rt_dev); + char name[IFNAMSIZ]; + if (copy_from_user(name, rt.rt_dev, IFNAMSIZ-1)) + return -EFAULT; + name[IFNAMSIZ-1] = '\0'; + dev = __dev_get_by_name(name); if (!dev) return -ENODEV; }