summaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
authorPeter Staubach <staubach@redhat.com>2006-03-25 03:08:04 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 08:22:59 -0800
commit57070d012cd425c3a71663528c56a436abd2d9da (patch)
treeb5c4a356b9db70d59341695b8eca578d05f1972e /fs/compat.c
parent30087baf8810cd96b0ca2858993f29a89965ffff (diff)
downloadlinux-57070d012cd425c3a71663528c56a436abd2d9da.tar.gz
linux-57070d012cd425c3a71663528c56a436abd2d9da.tar.bz2
linux-57070d012cd425c3a71663528c56a436abd2d9da.zip
[PATCH] compat_sys_nfsservctl(): handle errors correctly
Correct some error handling on the compat version of the nfsservctl() system. It was detecting errors while copying in the arguments from user space, but then attempting to use the arguments anyway. This didn't seem so good. Signed-off-by: Peter Staubach <staubach@redhat.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 2a88477330fc..263990ae4096 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -2170,9 +2170,12 @@ asmlinkage long compat_sys_nfsservctl(int cmd, struct compat_nfsctl_arg __user *
default:
err = -EINVAL;
- goto done;
+ break;
}
+ if (err)
+ goto done;
+
oldfs = get_fs();
set_fs(KERNEL_DS);
/* The __user pointer casts are valid because of the set_fs() */