quoted hunk ↗ jump to hunk
case SIOCGSTAMP:
@@ -884,8 +885,12 @@ int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
break;
case SIOCADDRT:
case SIOCDELRT:
+ if (copy_from_user(&rt, p, sizeof(struct rtentry)))
+ return -EFAULT;
+ err = ip_rt_ioctl(net, cmd, &rt);
+ break;
case SIOCRTMSG:
- err = ip_rt_ioctl(net, cmd, (void __user *)arg);
+ err = -EINVAL;
This looks odd, but ip_rt_ioctl never handled SIOCRTMSG to start with,
so it looks fine. Might be worth splitting into another prep patch
with a good changelog.
ip_rt_ioctl could also use some additional simplification if it's only
called for SIOCADDRT/SIOCDELRT and lose a level of indentation while
we're at it.
But otherwise this looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>