diff options
Diffstat (limited to 'fs/compat.c')
-rw-r--r-- | fs/compat.c | 10 |
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 | ||
117 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename, | 118 | asmlinkage 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, | |||
134 | out: | 135 | out: |
135 | return error; | 136 | return error; |
136 | } | 137 | } |
138 | #endif | ||
137 | 139 | ||
138 | asmlinkage long compat_sys_newfstat(unsigned int fd, | 140 | asmlinkage 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() */ |