aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Staubach <staubach@redhat.com>2006-03-25 06:08:04 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 11:22:59 -0500
commit57070d012cd425c3a71663528c56a436abd2d9da (patch)
treeb5c4a356b9db70d59341695b8eca578d05f1972e
parent30087baf8810cd96b0ca2858993f29a89965ffff (diff)
[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>
-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 *
2170 2170
2171 default: 2171 default:
2172 err = -EINVAL; 2172 err = -EINVAL;
2173 goto done; 2173 break;
2174 } 2174 }
2175 2175
2176 if (err)
2177 goto done;
2178
2176 oldfs = get_fs(); 2179 oldfs = get_fs();
2177 set_fs(KERNEL_DS); 2180 set_fs(KERNEL_DS);
2178 /* The __user pointer casts are valid because of the set_fs() */ 2181 /* The __user pointer casts are valid because of the set_fs() */