"Ted Unangst" <[email protected]> writes:
>
> Thanks for reminding me to revisit this. I think the following diff is
> sufficient.
Still works fine for me, thanks.
/gabriel
>
>
> Index: kern_sysctl.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
> retrieving revision 1.305
> diff -u -p -r1.305 kern_sysctl.c
> --- kern_sysctl.c 27 May 2016 19:45:04 -0000 1.305
> +++ kern_sysctl.c 28 Jun 2016 20:43:30 -0000
> @@ -1980,16 +1980,11 @@ sysctl_proc_vmmap(int *name, u_int namel
> if (findpr->ps_flags & (PS_SYSTEM | PS_EXITING))
> return (EINVAL);
>
> -#if 1
> - /* XXX Allow only root for now */
> - if ((error = suser(cp, 0)) != 0)
> - return (error);
> -#else
> /* Only owner or root can get vmmap */
> - if (findpr->ps_ucred->cr_uid != cp->p_ucred->cr_uid &&
> + if ((findpr->ps_ucred->cr_uid != cp->p_ucred->cr_uid ||
> + ISSET(findpr->ps_flags, PS_SUGIDEXEC | PS_SUGID)) &&
> (error = suser(cp, 0)) != 0)
> return (error);
> -#endif
> } else {
> /* Only root can get kernel_map */
> if ((error = suser(cp, 0)) != 0)