diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 155e612635f1341e1711f2546c638fa6da9dc0c5..e28a74203f3b1ae42896532a1c5e68bfb6e9c6e1 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -798,13 +798,16 @@ static int routing_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) r = (void *) &r4; } - if (ret) - return -EFAULT; + if (ret) { + ret = -EFAULT; + goto out; + } set_fs (KERNEL_DS); ret = sys_ioctl (fd, cmd, (unsigned long) r); set_fs (old_fs); +out: if (mysock) sockfd_put(mysock);