lkml.org 
[lkml]   [2003]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH][COMPAT] compat_sys_fcntl{,64} 1/9 Generic part
On Fri, Feb 28, 2003 at 05:33:49AM +0100, Stephen Rothwell wrote:
> +static int get_compat_flock(struct flock *kfl, struct compat_flock *ufl)
> +{
> + if (!access_ok(VERIFY_READ, ufl, sizeof(*ufl)) ||
> + __get_user(kfl->l_type, &ufl->l_type) ||
> + __get_user(kfl->l_whence, &ufl->l_whence) ||
> + __get_user(kfl->l_start, &ufl->l_start) ||
> + __get_user(kfl->l_len, &ufl->l_len) ||
> + __get_user(kfl->l_pid, &ufl->l_pid))

Perhaps there should be really a big fat comment on top of compat.c
that it depends on a hole on __PAGE_OFFSET if the arch allows passing
64bit pointers to the compat functions.

> +
> +asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd,
> + unsigned long arg)
> +{
> + if ((cmd == F_GETLK64) || (cmd == F_SETLK64) || (cmd == F_SETLKW64))
> + return -EINVAL;

That won't work for IA32 emulation. There are programs that call
old style fcntl() with F_*LK64. Just drop the if here.

> + return compat_sys_fcntl64(fd, cmd, arg);

-Andi















-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.046 / U:1.276 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site