svn commit: r226349 - head/sys/compat/freebsd32

John Baldwin jhb at freebsd.org
Thu Oct 13 19:25:41 UTC 2011


On Thursday, October 13, 2011 2:25:10 pm Marcel Moolenaar wrote:
> Author: marcel
> Date: Thu Oct 13 18:25:10 2011
> New Revision: 226349
> URL: http://svn.freebsd.org/changeset/base/226349
> 
> Log:
>   Wrap mprotect(2) so that we can add execute permissions when read
>   permissions are requested. This is needed on amd64 and ia64 for
>   JDK 1.4.x
> 
> Modified:
>   head/sys/compat/freebsd32/freebsd32_misc.c
>   head/sys/compat/freebsd32/freebsd32_proto.h
>   head/sys/compat/freebsd32/freebsd32_syscall.h
>   head/sys/compat/freebsd32/freebsd32_syscalls.c
>   head/sys/compat/freebsd32/freebsd32_sysent.c
>   head/sys/compat/freebsd32/freebsd32_systrace_args.c
> 
> Modified: head/sys/compat/freebsd32/freebsd32_misc.c
> ==============================================================================
> --- head/sys/compat/freebsd32/freebsd32_misc.c	Thu Oct 13 18:21:11 2011	(r226348)
> +++ head/sys/compat/freebsd32/freebsd32_misc.c	Thu Oct 13 18:25:10 2011	(r226349)
> @@ -437,6 +437,21 @@ freebsd32_mmap_partial(struct thread *td
>  #endif
>  
>  int
> +freebsd32_mprotect(struct thread *td, struct freebsd32_mprotect_args *uap)
> +{
> +	struct mprotect_args ap;
> +
> +	ap.addr = (void *)(uintptr_t)uap->addr;

Maybe use PTRIN() here?

> +	ap.len = uap->len;
> +	ap.prot = uap->prot;
> +#if defined(__amd64__) || defined(__ia64__)
> +	if (ap.prot & PROT_READ)
> +		ap.prot |= PROT_EXEC;
> +#endif
> +	return (sys_mprotect(td, &ap));
> +}
> +
> +int

-- 
John Baldwin


More information about the svn-src-all mailing list