mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-19 16:52:24 +08:00
Add parts of the UCRED(9) implementation
This commit is contained in:
@@ -95,8 +95,10 @@ SYSCTL_NODE(, CTL_P1003_1B, p1003_1b, CTLFLAG_RW, 0,
|
|||||||
|
|
||||||
SYSCTL_NODE(, OID_AUTO, compat, CTLFLAG_RW, 0,
|
SYSCTL_NODE(, OID_AUTO, compat, CTLFLAG_RW, 0,
|
||||||
"Compatibility code");
|
"Compatibility code");
|
||||||
|
#endif /* __rtems__ */
|
||||||
SYSCTL_NODE(, OID_AUTO, security, CTLFLAG_RW, 0,
|
SYSCTL_NODE(, OID_AUTO, security, CTLFLAG_RW, 0,
|
||||||
"Security");
|
"Security");
|
||||||
|
#ifndef __rtems__
|
||||||
#ifdef REGRESSION
|
#ifdef REGRESSION
|
||||||
SYSCTL_NODE(, OID_AUTO, regression, CTLFLAG_RW, 0,
|
SYSCTL_NODE(, OID_AUTO, regression, CTLFLAG_RW, 0,
|
||||||
"Regression test MIB");
|
"Regression test MIB");
|
||||||
|
@@ -83,12 +83,12 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <freebsd/security/audit/audit.h>
|
#include <freebsd/security/audit/audit.h>
|
||||||
#include <freebsd/security/mac/mac_framework.h>
|
#include <freebsd/security/mac/mac_framework.h>
|
||||||
|
|
||||||
#ifndef __rtems__
|
|
||||||
static MALLOC_DEFINE(M_CRED, "cred", "credentials");
|
static MALLOC_DEFINE(M_CRED, "cred", "credentials");
|
||||||
|
|
||||||
SYSCTL_NODE(_security, OID_AUTO, bsd, CTLFLAG_RW, 0, "BSD security policy");
|
SYSCTL_NODE(_security, OID_AUTO, bsd, CTLFLAG_RW, 0, "BSD security policy");
|
||||||
|
|
||||||
static void crextend(struct ucred *cr, int n);
|
static void crextend(struct ucred *cr, int n);
|
||||||
|
#ifndef __rtems__
|
||||||
static void crsetgroups_locked(struct ucred *cr, int ngrp,
|
static void crsetgroups_locked(struct ucred *cr, int ngrp,
|
||||||
gid_t *groups);
|
gid_t *groups);
|
||||||
|
|
||||||
@@ -1710,6 +1710,7 @@ p_candebug(struct thread *td, struct proc *p)
|
|||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
#endif /* __rtems__ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Determine whether the subject represented by cred can "see" a socket.
|
* Determine whether the subject represented by cred can "see" a socket.
|
||||||
@@ -1735,7 +1736,6 @@ cr_canseesocket(struct ucred *cred, struct socket *so)
|
|||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
#endif /* __rtems__ */
|
|
||||||
|
|
||||||
#if defined(INET) || defined(INET6)
|
#if defined(INET) || defined(INET6)
|
||||||
/*-
|
/*-
|
||||||
@@ -1796,6 +1796,7 @@ p_canwait(struct thread *td, struct proc *p)
|
|||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
#endif /* __rtems__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Allocate a zeroed cred structure.
|
* Allocate a zeroed cred structure.
|
||||||
@@ -1863,6 +1864,7 @@ crfree(struct ucred *cr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __rtems__
|
||||||
/*
|
/*
|
||||||
* Check to see if this ucred is shared.
|
* Check to see if this ucred is shared.
|
||||||
*/
|
*/
|
||||||
@@ -1908,6 +1910,7 @@ crdup(struct ucred *cr)
|
|||||||
crcopy(newcr, cr);
|
crcopy(newcr, cr);
|
||||||
return (newcr);
|
return (newcr);
|
||||||
}
|
}
|
||||||
|
#endif /* __rtems__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill in a struct xucred based on a struct ucred.
|
* Fill in a struct xucred based on a struct ucred.
|
||||||
@@ -1927,6 +1930,7 @@ cru2x(struct ucred *cr, struct xucred *xcr)
|
|||||||
ngroups * sizeof(*cr->cr_groups));
|
ngroups * sizeof(*cr->cr_groups));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __rtems__
|
||||||
/*
|
/*
|
||||||
* small routine to swap a thread's current ucred for the correct one taken
|
* small routine to swap a thread's current ucred for the correct one taken
|
||||||
* from the process.
|
* from the process.
|
||||||
@@ -1966,6 +1970,7 @@ crcopysafe(struct proc *p, struct ucred *cr)
|
|||||||
|
|
||||||
return (oldcred);
|
return (oldcred);
|
||||||
}
|
}
|
||||||
|
#endif /* __rtems__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extend the passed in credential to hold n items.
|
* Extend the passed in credential to hold n items.
|
||||||
@@ -2007,6 +2012,7 @@ crextend(struct ucred *cr, int n)
|
|||||||
cr->cr_agroups = cnt;
|
cr->cr_agroups = cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __rtems__
|
||||||
/*
|
/*
|
||||||
* Copy groups in to a credential, preserving any necessary invariants.
|
* Copy groups in to a credential, preserving any necessary invariants.
|
||||||
* Currently this includes the sorting of all supplemental gids.
|
* Currently this includes the sorting of all supplemental gids.
|
||||||
|
Reference in New Issue
Block a user