aboutsummaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 5333c7d7427f..ef5a0771592d 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -114,6 +114,7 @@ asmlinkage long compat_sys_newlstat(char __user * filename,
114 return error; 114 return error;
115} 115}
116 116
117#ifndef __ARCH_WANT_STAT64
117asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename, 118asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename,
118 struct compat_stat __user *statbuf, int flag) 119 struct compat_stat __user *statbuf, int flag)
119{ 120{
@@ -134,6 +135,7 @@ asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename,
134out: 135out:
135 return error; 136 return error;
136} 137}
138#endif
137 139
138asmlinkage long compat_sys_newfstat(unsigned int fd, 140asmlinkage long compat_sys_newfstat(unsigned int fd,
139 struct compat_stat __user * statbuf) 141 struct compat_stat __user * statbuf)
@@ -1474,10 +1476,9 @@ int compat_do_execve(char * filename,
1474 int i; 1476 int i;
1475 1477
1476 retval = -ENOMEM; 1478 retval = -ENOMEM;
1477 bprm = kmalloc(sizeof(*bprm), GFP_KERNEL); 1479 bprm = kzalloc(sizeof(*bprm), GFP_KERNEL);
1478 if (!bprm) 1480 if (!bprm)
1479 goto out_ret; 1481 goto out_ret;
1480 memset(bprm, 0, sizeof(*bprm));
1481 1482
1482 file = open_exec(filename); 1483 file = open_exec(filename);
1483 retval = PTR_ERR(file); 1484 retval = PTR_ERR(file);
@@ -2168,9 +2169,12 @@ asmlinkage long compat_sys_nfsservctl(int cmd, struct compat_nfsctl_arg __user *
2168 2169
2169 default: 2170 default:
2170 err = -EINVAL; 2171 err = -EINVAL;
2171 goto done; 2172 break;
2172 } 2173 }
2173 2174
2175 if (err)
2176 goto done;
2177
2174 oldfs = get_fs(); 2178 oldfs = get_fs();
2175 set_fs(KERNEL_DS); 2179 set_fs(KERNEL_DS);
2176 /* The __user pointer casts are valid because of the set_fs() */ 2180 /* The __user pointer casts are valid because of the set_fs() */