cvs commit: src/sys/kern kern_descrip.c
Robert Watson
rwatson at FreeBSD.org
Thu Jul 15 10:21:30 PDT 2004
On Thu, 15 Jul 2004, Pawel Jakub Dawidek wrote:
> On Wed, Jul 14, 2004 at 07:04:31PM +0000, Christian S.J. Peron wrote:
> +> csjp 2004-07-14 19:04:31 UTC
> +>
> +> FreeBSD src repository
> +>
> +> Modified files:
> +> sys/kern kern_descrip.c
> +> Log:
> +> In addition to the real user ID check, do an explicit jail
> +> check to ensure that the caller is not prison root.
> +>
> +> The intention is to fix file descriptor creation so that
> +> prison root can not use the last remaining file descriptors.
> +> This privilege should be reserved for non-jailed root users.
> [...]
> +> fp = uma_zalloc(file_zone, M_WAITOK | M_ZERO);
> +> sx_xlock(&filelist_lock);
> +> - if ((nfiles >= maxuserfiles && td->td_ucred->cr_ruid != 0)
> +> - || nfiles >= maxfiles) {
> +> + if ((nfiles >= maxuserfiles && (td->td_ucred->cr_ruid != 0 ||
> +> + jailed(td->td_ucred))) || nfiles >= maxfiles) {
> +> if (ppsratecheck(&lastfail, &curfail, 1)) {
> +> printf("kern.maxfiles limit exceeded by uid %i, please see tuning(7).\n",
> +> td->td_ucred->cr_ruid);
>
> Could we change 'td->td_ucred->cr_ruid != 0 || jailed(td->td_ucred)' to
> 'suser(td) != 0'?
No, because suser(td) checks the effective uid, not the real uid. Which
is the reason I asked him to change it to that before committing, and why
Colin had to back out his commit also :-). Colin is preparing patches to
add a flag to suser_cred() to allow the caller to say they care about the
real uid.
Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org Principal Research Scientist, McAfee Research
More information about the cvs-all
mailing list