Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/kern_prot.c
RevisionDateAuthorComments
 1.122  23-May-2020  ad Move proc_lock into the data segment. It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.
 1.121  13-Nov-2016  christos Make p_ppid contain the original parent's pid even for traced processes.
Only change it when we are being permanently reparented to init. Since
p_ppid is only used as a cached value to retrieve the parent's process id
from userland, this change makes it correct at all times. Idea from kre@
Revert specialized logic from getpid/getppid now that it is not needed.
 1.120  12-Nov-2016  christos PR/51624: Return the original parent for a traced process.
 1.119  24-Aug-2015  pooka branches: 1.119.2;
to garnish, dust with _KERNEL_OPT
 1.118  20-Oct-2014  maxv branches: 1.118.2;
The userland namelen is size_t, but the kernel holds it in an int. The
sizeof(login) test implicitly interprets 'namelen' as unsigned, which
means that negative values get kicked anyway. Still this is fragile, so:
int -> size_t
 1.117  25-Nov-2013  rmind do_setresuid: add an assert.
 1.116  09-Jun-2012  christos branches: 1.116.2; 1.116.4;
Remove debugging.
 1.115  09-Jun-2012  christos Add a new resource to limit the number of lwps per user, RLIMIT_NTHR. There
is a global sysctl kern.maxlwp to control this, which is by default 2048.
The first lwp of each process or kernel threads are not counted against the
limit. To show the current resource usage per user, I added a new sysctl
that dumps the uidinfo structure fields.
 1.114  19-Mar-2012  matt No need take the address of an array (&array) since an array is already a
pointer.
 1.113  27-Apr-2011  martin branches: 1.113.4; 1.113.8;
Simplify previous: the original code was mostly correct but relied on
"register_t" being signed.
 1.112  26-Apr-2011  martin Stupidly (but standards commpliant) the gidsetsize argument of the
getgroups() syscall is "int" - i.e. signed.
Explicitly check for negative values and make them fail.
 1.111  30-Aug-2010  pooka branches: 1.111.2;
remove trailing empty line. no useful change.
 1.110  01-Jul-2010  rmind Remove pfind() and pgfind(), fix locking in various broken uses of these.
Rename real routines to proc_find() and pgrp_find(), remove PFIND_* flags
and have consistent behaviour. Provide proc_find_raw() for special cases.
Fix memory leak in sysctl_proc_corename().

COMPAT_LINUX: rework ptrace() locking, minimise differences between
different versions per-arch.

Note: while this change adds some formal cosmetics for COMPAT_DARWIN and
COMPAT_IRIX - locking there is utterly broken (for ages).

Fixes PR/43176.
 1.109  25-Apr-2009  rmind branches: 1.109.2; 1.109.4;
- Rearrange pg_delete() and pg_remove() (renamed pg_free), thus
proc_enterpgrp() with proc_leavepgrp() to free process group and/or
session without proc_lock held.
- Rename SESSHOLD() and SESSRELE() to to proc_sesshold() and
proc_sessrele(). The later releases proc_lock now.

Quick OK by <ad>.
 1.108  11-Oct-2008  pooka branches: 1.108.2; 1.108.8;
Move uidinfo to its own module in kern_uidinfo.c and include in rump.
No functional change to uidinfo.
 1.107  02-Jun-2008  ad branches: 1.107.4;
Most contention on proc_lock is from getppid(), so cache the parent's PID.
 1.106  24-Apr-2008  ad branches: 1.106.2; 1.106.4;
Network protocol interrupts can now block on locks, so merge the globals
proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock).
Implications:

- Inspecting process state requires thread context, so signals can no longer
be sent from a hardware interrupt handler. Signal activity must be
deferred to a soft interrupt or kthread.

- As the proc state locking is simplified, it's now safe to take exit()
and wait() out from under kernel_lock.

- The system spends less time at IPL_SCHED, and there is less lock activity.
 1.105  20-Dec-2007  dsl branches: 1.105.6; 1.105.8;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.104  30-Jun-2007  dsl branches: 1.104.8; 1.104.16; 1.104.20;
Fix inverted check in sys_setgroups().
 1.103  30-Jun-2007  dsl Add a flags parameter to kauth_cred_get/setgroups() so that sys_set/setgroups
can copy directly to/from userspace.
Avoids exposing the implementation of the group list as an array to code
outside kern_auth.c.
compat code and man page need updating.
 1.102  23-Jun-2007  dsl Make sys_getgroups() and sys_setgroups() use the newly added functions
in kern_prot.c in order to simplify the code paths.
NB: the grouplist is not longer sorted - I don't think anything relies
on this (any more) and nfs will use truncated lists where the order of the
entries is important.
Move the external defns for public functios in kern_prot.c into a new
header sys/prot.h (from sys/ucred.h which contains a compat defn that
is exposed to userspace).
 1.101  09-Mar-2007  ad branches: 1.101.2; 1.101.4;
- Make the proclist_lock a mutex. The write:read ratio is unfavourable,
and mutexes are cheaper use than RW locks.
- LOCK_ASSERT -> KASSERT in some places.
- Hold proclist_lock/kernel_lock longer in a couple of places.
 1.100  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.99  22-Feb-2007  thorpej TRUE -> true, FALSE -> false
 1.98  17-Feb-2007  pavel Change the process/lwp flags seen by userland via sysctl back to the
P_*/L_* naming convention, and rename the in-kernel flags to avoid
conflict. (P_ -> PK_, L_ -> LW_ ). Add back the (now unused) LSDEAD
constant.

Restores source compatibility with pre-newlock2 tools like ps or top.

Reviewed by Andrew Doran.
 1.97  09-Feb-2007  ad branches: 1.97.2;
Merge newlock2 to head.
 1.96  01-Nov-2006  yamt remove some __unused from function parameters.
 1.95  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.94  08-Sep-2006  elad branches: 1.94.2;
First take at security model abstraction.

- Add a few scopes to the kernel: system, network, and machdep.

- Add a few more actions/sub-actions (requests), and start using them as
opposed to the KAUTH_GENERIC_ISSUSER place-holders.

- Introduce a basic set of listeners that implement our "traditional"
security model, called "bsd44". This is the default (and only) model we
have at the moment.

- Update all relevant documentation.

- Add some code and docs to help folks who want to actually use this stuff:

* There's a sample overlay model, sitting on-top of "bsd44", for
fast experimenting with tweaking just a subset of an existing model.

This is pretty cool because it's *really* straightforward to do stuff
you had to use ugly hacks for until now...

* And of course, documentation describing how to do the above for quick
reference, including code samples.

All of these changes were tested for regressions using a Python-based
testsuite that will be (I hope) available soon via pkgsrc. Information
about the tests, and how to write new ones, can be found on:

http://kauth.linbsd.org/kauthwiki

NOTE FOR DEVELOPERS: *PLEASE* don't add any code that does any of the
following:

- Uses a KAUTH_GENERIC_ISSUSER kauth(9) request,
- Checks 'securelevel' directly,
- Checks a uid/gid directly.

(or if you feel you have to, contact me first)

This is still work in progress; It's far from being done, but now it'll
be a lot easier.

Relevant mailing list threads:

http://mail-index.netbsd.org/tech-security/2006/01/25/0011.html
http://mail-index.netbsd.org/tech-security/2006/03/24/0001.html
http://mail-index.netbsd.org/tech-security/2006/04/18/0000.html
http://mail-index.netbsd.org/tech-security/2006/05/15/0000.html
http://mail-index.netbsd.org/tech-security/2006/08/01/0000.html
http://mail-index.netbsd.org/tech-security/2006/08/25/0000.html

Many thanks to YAMAMOTO Takashi, Matt Thomas, and Christos Zoulas for help
stablizing kauth(9).

Full credit for the regression tests, making sure these changes didn't break
anything, goes to Matt Fleming and Jaime Fournier.

Happy birthday Randi! :)
 1.93  30-Jul-2006  ad branches: 1.93.4;
Single-thread updates to the process credential.
 1.92  19-Jul-2006  ad - Hold a reference to the process credentials in each struct lwp.
- Update the reference on syscall and user trap if p_cred has changed.
- Collect accounting flags in the LWP, and collate on LWP exit.
 1.91  17-Jul-2006  ad - Always make p->p_cred a private copy before modifying.
- Share credentials among processes when forking.
 1.90  15-Jul-2006  yamt do_setresuid, do_setresgid: use the suser privilege only when necessary.
 1.89  14-May-2006  elad integrate kauth.
 1.88  11-Dec-2005  christos branches: 1.88.4; 1.88.6; 1.88.8; 1.88.10; 1.88.12;
merge ktrace-lwp.
 1.87  02-Sep-2005  rillig Made the code of the grsortu function smaller and simpler. Ok'ed by
christos.
 1.86  23-Aug-2005  christos in setgroups(), sort -u the gid_t array to make sure that comparisons are
consistent.
 1.85  22-Aug-2005  rillig Bugfix: In crcmp, compare n group IDs instead of only n bytes.

Added a big FIXME because two group lists containing the same entries,
but ordered differently, still compare as unequal. The same holds if one
group list contains an entry twice while the other does not. ok'ed by
christos.
 1.84  04-May-2004  pk branches: 1.84.12;
crcopy: no need to lock if we're only reading the structure's reference count.
 1.83  02-May-2004  pk Add mutex to protect the ucred reference counter.
 1.82  25-Apr-2004  simonb Initialise (most) pools from a link set instead of explicit calls
to pool_init. Untouched pools are ones that either in arch-specific
code, or aren't initialiased during initial system startup.

Convert struct session, ucred and lockf to pools.
 1.81  17-Apr-2004  christos PR/9347: Eric E. Fair: socket buffer pool exhaustion leads to system deadlock
and unkillable processes.
1. Introduce new SBSIZE resource limit from FreeBSD to limit socket buffer
size resource.
2. make sokvareserve interruptible, so processes ltsleeping on it can be
killed.
 1.80  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.79  16-May-2003  christos branches: 1.79.2;
add a crcmp() function.
 1.78  27-Mar-2003  jdolecek sys_setreuid(): parenthesize the ruid check in ?: condition, so that
it would be more difficult to mistake == for = when reading it
 1.77  19-Mar-2003  dsl Alternative pid/proc allocater, removes all searches associated with pid
lookup and allocation, and any dependency on NPROC or MAXUSERS.
NO_PID changed to -1 (and renamed NO_PGID) to remove artificial limit
on PID_MAX.
As discussed on tech-kern.
 1.76  05-Mar-2003  dsl Add do_setresuid() and do_setresgid() and implement sys_setuid, sys_seteuid,
sys_setreuid (and gid equivs) in terms of them.
 1.75  28-Feb-2003  enami Cosmetic changes.
 1.74  18-Feb-2003  wiz Add newline character to logname change warning.
Noted missing by Sean Davis on tech-kern.
 1.73  18-Feb-2003  dsl KNF kern_prot.c
 1.72  15-Feb-2003  dsl Fix support of 15 and 16 character lognames.
Warn if the logname is changed within a session - usually a missing setsid.
(approved by christos)
 1.71  01-Feb-2003  thorpej Add extensible malloc types, adapted from FreeBSD. This turns
malloc types into a structure, a pointer to which is passed around,
instead of an int constant. Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
 1.70  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.69  25-Aug-2002  thorpej branches: 1.69.2;
Fix some signed/unsigned comparison warnings from GCC 3.3.
 1.68  06-Dec-2001  christos branches: 1.68.8;
remove diagnostic test checking for cr_ref = 0. It will never be, because
free() will stick 0xdeadbeef into it.
 1.67  29-Nov-2001  christos introduce crcvt() that converts from struct uucred to struct ucred.
 1.66  27-Nov-2001  jdolecek crfree(): add DIAGNOSTIC sanity check of cr_ref; unfortunately, if the memory
is freed prematurely the check won't be triggered immediatelly, probably
since the memory is likely to be reused fast; but it _would_ be triggered
eventually
 1.65  12-Nov-2001  lukem add RCSIDs
 1.64  12-Apr-2001  thorpej branches: 1.64.2; 1.64.6;
Remove an splimp() that really has no purpose in life.
 1.63  09-Dec-2000  mycroft branches: 1.63.2;
Fix compile glitch.
 1.62  09-Dec-2000  mycroft Define 3 new functions:
* sys_getpid_with_ppid()
* sys_getuid_with_euid()
* sys_getgid_with_egid()
that do the retval[1] hack. Use them when COMPAT_43 is defined.
 1.61  01-Dec-2000  jdolecek use EMUL_GETPID_PASS_PPID or EMUL_GETID_PASS_EID to find out if one should
pass parent pid for getpid() or effective id for get[ug]id(), instead
of compile-time dependency
 1.60  17-Oct-2000  christos knf [from charles]
 1.59  17-Oct-2000  christos Don't set P_SUGID if the calls to set{e,}{u,g}id(), setreuid(),
setgroups() did not result in actual changes. This has the nice
side effect that we don't needlesly allocate new credential and
resource limit data structures.

This is so that non setuid programs that call seteuid(getuid()),
don't end up setting P_SUGID, resulting in broken behavior [i.e.
non setuid ssh, doesn't read ~/.hostaliases...].

This is a good candidate for a pullup, if someone reviews it.
 1.58  27-May-2000  sommerfeld branches: 1.58.4;
Reduce use of curproc in several places:

- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

- Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

- Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

- ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

- move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

- simplify interface to ktrwrite()
 1.57  21-Apr-2000  minoura Add native issetugid() call.
Implementation from compat/freebsd.
 1.56  30-Mar-2000  augustss Get rid of register declarations.
 1.55  28-Sep-1999  bouyer branches: 1.55.2;
Remplace kern.shortcorename sysctl with a more flexible sheme,
core filename format, which allow to change the name of the core dump,
and to relocate it in a directory. Credits to Bill Sommerfeld for giving me
the idea :)
The default core filename format can be changed by options DEFCORENAME and/or
kern.defcorename
Create a new sysctl tree, proc, which holds per-process values (for now
the corename format, and resources limits). Process is designed by its pid
at the second level name. These values are inherited on fork, and the corename
fomat is reset to defcorename on suid/sgid exec.
Create a p_sugid() function, to take appropriate actions on suid/sgid
exec (for now set the P_SUGID flag and reset the per-proc corename).
Adjust dosetrlimit() to allow changing limits of one proc by another, with
credential controls.
 1.54  30-Apr-1999  cgd add checks for COMPAT_OSF1 in the appropriate places
 1.53  28-Mar-1999  kleink branches: 1.53.2; 1.53.4; 1.53.6;
Sync __getlogin()'s namelen argument with the libc-internal declaration
(u_int vs. size_t).
 1.52  18-Dec-1998  drochner COMPAT_xxx option review: add missing opt_compat_linux.h
alpha -> __alpha__
 1.51  10-Dec-1998  christos defopt COMPAT_43
 1.50  25-Sep-1998  erh Alpha Linux compat tweak for getpid, getuid and getgid.
 1.49  04-Aug-1998  perry Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
bcopy(x, y, z) -> memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
bcmp(x, y, z) -> memcmp(x, y, z)
bzero(x, y) -> memset(x, 0, y)
 1.48  31-Jul-1998  perry fix sizeofs so they comply with the KNF style guide. yes, it is pedantic.
 1.47  25-Jun-1998  thorpej branches: 1.47.2;
defopt COMPAT_SUNOS
 1.46  25-Jun-1998  thorpej defopt COMPAT_IBCS2
 1.45  25-Jun-1998  thorpej defopt COMPAT_FREEBSD
 1.44  01-Mar-1998  fvdl Merge with Lite2 + local changes
 1.43  14-Feb-1998  thorpej Implement getsid(2), as defined by XPG4.2: returns the process group ID
of the session leader of the specified process's session.
 1.42  10-Nov-1997  mycroft Clean up code from last commit.
 1.41  04-Nov-1997  thorpej Fix slight argument bogosity with getgroups(), setgroups(), select(),
and swapctl(). For the former three, they use an 'int' in their user-land
prototype which was a 'u_int' in the kernel, which screwed up automatic
generation/checking of lint syscall stubs. For the latter, the user-land
prototype uses a "const char *", but the syscall just used "char *".

From Chris Demetriou <cgd@pa.dec.com>.
 1.40  23-Apr-1997  mycroft branches: 1.40.8;
Nuke the old COMPAT_09 truncation of UIDs, GIDs, process and process group IDs.
 1.39  27-Mar-1997  mikel make setpgid(pid, pgrp) return EINVAL if pgrp < 0 as required by POSIX.1;
from Klaus Klein in PR standards/3395.
 1.38  22-Dec-1996  cgd * catch up with system call argument type fixups/const poisoning.
* Fix arguments to various copyin()/copyout() invocations, to avoid
gratuitous casts.
* Some KNF formatting fixes
 1.37  19-Sep-1996  jtc renamed sys_getlogin to sys___getlogin. required by libc namespace conventions
 1.36  09-Aug-1996  mrg Change reboot(2) to take two arguments: bootopt like normal and also
a boot string for firmware that can do this, such as the SPARC and
the sun3 models. It is currently silently ignored on all other
hardware now, however. The MD function "boot()" has been changed to
also take a char *.
 1.35  23-Jun-1996  mycroft Implement setre[ug]id() compatibly with 4.3BSD, SunOS, and Linux.
 1.34  22-May-1996  mycroft Remove bogus comment in setgid().
 1.33  09-Feb-1996  christos branches: 1.33.4;
More proto fixes
 1.32  04-Feb-1996  christos First pass at prototyping
 1.31  10-Oct-1995  mycroft Add hooks for COMPAT_FREEBSD, from Noriyuki Soda.
 1.30  07-Oct-1995  mycroft Prefix names of system call implementation functions with `sys_'.
 1.29  19-Sep-1995  thorpej Make system calls conform to a standard prototype and bring those
prototypes into scope.
 1.28  24-Jun-1995  christos Extracted all of the compat_xxx routines, and created a library [libcompat]
for them. There are a few #ifdef COMPAT_XX remaining, but they are not easy
or worth eliminating (yet).
 1.27  01-Jun-1995  jtc Moved egid credential from cr_groups[0] to new field cr_gid. POSIX.1
requires that sgid executables and the setuid() syscall *not* change
the supplemental group list.
 1.26  10-May-1995  christos tty_tb.c: need to include ioctl_compat.h in order to compile.
sysv_shm.c: make shm_find_segment_by_shmid global so it can be used by
COMPAT_HPUX. There should be a better way...
rest: Add #ifdef COMPAT_HPUX where needed
 1.25  09-Mar-1995  mycroft copy*str() should use size_t.
 1.24  08-Mar-1995  cgd use NULL rather than casted zero
 1.23  05-Mar-1995  fvdl Extended a couple of defines with "|| defined(COMPAT_LINUX)" to make
things compile without requiring COMPAT_43 and/or COMPAT_09.
 1.22  24-Dec-1994  cgd as noted by James Jegers, crfree should return void.
 1.21  30-Oct-1994  cgd be more careful with types, also pull in headers where necessary.
 1.20  21-Oct-1994  mycroft Return ppid and euid for COMPAT_IBCS2, too.
 1.19  20-Oct-1994  cgd update for new syscall args description mechanism
 1.18  19-Sep-1994  mycroft Require at least one group.
 1.17  25-Aug-1994  deraadt emulate setreuid/setregid better.
 1.16  29-Jun-1994  cgd branches: 1.16.2;
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
 1.15  19-May-1994  cgd update to lite
 1.14  17-May-1994  cgd copyright foo
 1.13  09-May-1994  cgd compat_09 stuff for pid_t's
 1.12  04-May-1994  cgd Rename a lot of process flags.
 1.11  07-Apr-1994  cgd SUGID semantics, similar to 4.4BSD
 1.10  02-Apr-1994  cgd gah. shoot me.
 1.9  01-Apr-1994  cgd some type-changing, simplification, and re-instate casts for phil.
 1.8  27-Mar-1994  cgd expand uid_t/gid_t/off_t
 1.7  23-Jan-1994  deraadt pull in COMPAT_SUNOS stuff from magnum
 1.6  18-Dec-1993  mycroft Canonicalize all #includes.
 1.5  09-Sep-1993  phil These changes are due to a mismatch with user functions prototyped as
func(short) and the fact the the kernel uses full ints. This caused
problems on the pc532 port. These fixes take the good 16 bits passed
by the user program and converts them into the correct form for the
kernel.
 1.4  13-Jul-1993  cgd branches: 1.4.4;
break args structs out, into syscallname_args structs, so gcc2 doesn't
whine so much.
 1.3  27-Jun-1993  andrew ANSIfications - removed all implicit function return types and argument
definitions. Ensured that all files include "systm.h" to gain access to
general prototypes. Casts where necessary.
 1.2  20-May-1993  cgd add $Id$ strings, and clean up file headers where necessary
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3  01-Mar-1998  fvdl Import 4.4BSD-Lite2
 1.1.1.2  01-Mar-1998  fvdl Import 4.4BSD-Lite for reference
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4.4.4  14-Nov-1993  mycroft Canonicalize all #includes.
 1.4.4.3  18-Oct-1993  deraadt #ifdef COMPAT_43
->
#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
in a few places
 1.4.4.2  24-Sep-1993  mycroft Make all files using spl*() #include cpu.h. Changes from trunk.
init_main.c: New method of pseudo-device of initialization.
kern_clock.c: hardclock() and softclock() now take a pointer to a clockframe.
softclock() only does callouts.
kern_synch.c: Remove spurious declaration of endtsleep(). Adjust uses of
averunnable for new struct loadav.
subr_prf.c: Allow printf() formats in panic().
tty.c: averunnable changes.
vfs_subr.c: va_size and va_bytes are now quads.
 1.4.4.1  14-Sep-1993  mycroft init_main.c: clock changes from 4.4; initclocks() is called after vfsinit().
No startrtclock() or enablertclock(). Some pseudo-device cruft, but this needs
to be updated.
kern_clock.c: from 4.4: gatherstats() --> statclock(). statclock(),
hardclock(), and softclock() take a `struct clockframe *'. New initclocks(),
harclock(), statclock(), startprofclock(), and stopprofclock().
kern_synch.c: from 4.4: machine-independent swtch(), which is now where
process time is integrated. Calls cpu_swtch() with the current process as an
arg.
subr_autoconf.c: Fix typo.
subr_prf.c: msgbufp and msgbufmapped are define in machdep.c
tty.c: Make TIOCHPCL #ifdef COMPAT_43.
Incorporate changes from main branch.
 1.16.2.1  06-Oct-1994  mycroft Update from trunk.
 1.33.4.1  10-Dec-1996  mycroft From trunk:
Implement setre[ug]id() for real.
 1.40.8.1  04-Nov-1997  thorpej Pull up from trunk: Fix syscall argument type bogons.
 1.47.2.1  08-Aug-1998  eeh Revert cdevsw mmap routines to return int.
 1.53.6.1  30-Nov-1999  itojun bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code). Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.
 1.53.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.53.2.2  06-Oct-2000  he Pull up revision 1.57 (requested by sommerfeld):
Introduce the issetugid() system call.
 1.53.2.1  21-Jun-1999  cgd pull up rev(s) 1.54 from trunk. (cgd)
 1.55.2.4  21-Apr-2001  bouyer Sync with HEAD
 1.55.2.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.55.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.55.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.58.4.2  09-Feb-2002  he Pull up revisions 1.66-1.68 (requested by christos):
Widen cr_ref to prevent overflow.
 1.58.4.1  18-Oct-2000  tv Pullup 1.59 and 1.60 [christos]:
Don't set P_SUGID if the calls to set{e,}{u,g}id(), setreuid(),
setgroups() did not result in actual changes. This has the nice
side effect that we don't needlesly allocate new credential and
resource limit data structures.

[releng: this is needed for proper operation of issetugid()]
 1.63.2.8  27-Aug-2002  nathanw Catch up to -current.
 1.63.2.7  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.63.2.6  29-May-2002  nathanw #include <sys/sa.h> before <sys/syscallargs.h>, to provide sa_upcall_t
now that <sys/param.h> doesn't include <sys/sa.h>.

(Behold the Power of Ed)
 1.63.2.5  28-Feb-2002  nathanw sys_setlogin() -> sys___setlogin()
 1.63.2.4  08-Jan-2002  nathanw Catch up to -current.
 1.63.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.63.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.63.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.64.6.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.64.2.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.64.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.68.8.1  29-Aug-2002  gehenna catch up with -current.
 1.69.2.1  18-Dec-2002  gmcgarry Merge pcred and ucred, and poolify. TBD: check backward compatibility
and factor-out some higher-level functionality.
 1.79.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.79.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.79.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.79.2.1  03-Aug-2004  skrll Sync with HEAD
 1.84.12.5  21-Jan-2008  yamt sync with head
 1.84.12.4  03-Sep-2007  yamt sync with head.
 1.84.12.3  26-Feb-2007  yamt sync with head.
 1.84.12.2  30-Dec-2006  yamt sync with head.
 1.84.12.1  21-Jun-2006  yamt sync with head.
 1.88.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.88.10.7  06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.88.10.6  30-Mar-2006  elad Get rid of some stuff we no longer need here:

- suser()
- groupmember()
- pcred/ucred memory pools
- crget(), crfree(), crcmp(), crcopy(), crdup(), crcvt()
 1.88.10.5  14-Mar-2006  elad Use kauth_cred_[sg]etgroups() where appropriate.
 1.88.10.4  10-Mar-2006  elad generic_authorize() -> kauth_authorize_generic().
 1.88.10.3  09-Mar-2006  elad After kauth_cred_copy(), update p->p_cred so we don't access pool_put()'d
memory.
 1.88.10.2  08-Mar-2006  elad Fix some issues with set-id binaries.
 1.88.10.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.88.8.3  14-Sep-2006  yamt sync with head.
 1.88.8.2  11-Aug-2006  yamt sync with head
 1.88.8.1  24-May-2006  yamt sync with head.
 1.88.6.1  01-Jun-2006  kardel Sync with head.
 1.88.4.1  09-Sep-2006  rpaulo sync with head
 1.93.4.5  05-Feb-2007  ad - When clearing signals dequeue siginfo first and free later, once
outside the lock permiter.
- Push kernel_lock back in a a couple of places.
- Adjust limcopy() to be MP safe (this needs redoing).
- Fix a couple of bugs noticed along the way.
- Catch up with condvar changes.
 1.93.4.4  30-Jan-2007  ad Remove support for SA. Ok core@.
 1.93.4.3  18-Nov-2006  ad Sync with head.
 1.93.4.2  17-Nov-2006  ad Checkpoint work in progress.
 1.93.4.1  11-Sep-2006  ad - Allocate and free turnstiles where needed.
- Split proclist_mutex and alllwp_mutex out of the proclist_lock,
and use in interrupt context.
- Fix an MP race in enterpgrp()/setsid().
- Acquire proclist_lock and p_crmutex in some obvious places.
 1.94.2.2  10-Dec-2006  yamt sync with head.
 1.94.2.1  22-Oct-2006  yamt sync with head
 1.97.2.2  12-Mar-2007  rmind Sync with HEAD.
 1.97.2.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.101.4.1  11-Jul-2007  mjf Sync with head.
 1.101.2.1  15-Jul-2007  ad Sync with head.
 1.104.20.1  02-Jan-2008  bouyer Sync with HEAD
 1.104.16.1  26-Dec-2007  ad Sync with head.
 1.104.8.1  09-Jan-2008  matt sync with HEAD
 1.105.8.2  04-Jun-2008  yamt sync with head
 1.105.8.1  18-May-2008  yamt sync with head.
 1.105.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.105.6.2  05-Jun-2008  mjf Sync with HEAD.

Also fix build.
 1.105.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.106.4.3  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.106.4.2  14-May-2008  wrstuden Per discussion with ad, remove most of the #include <sys/sa.h> lines
as they were including sa.h just for the type(s) needed for syscallargs.h.

Instead, create a new file, sys/satypes.h, which contains just the
types needed for syscallargs.h. Yes, there's only one now, but that
may change and it's probably more likely to change if it'd be difficult
to handle. :-)

Per discussion with matt at n dot o, add an include of satypes.h to
sigtypes.h. Upcall handlers are kinda signal handlers, and signalling
is the header file that's already included for syscallargs.h that
closest matches SA.

This shaves about 3000 lines off of the diff of the branch relative
to the base. That also represents about 18% of the total before this
checkin.

I think this reduction is very good thing.
 1.106.4.1  10-May-2008  wrstuden Initial checkin of re-adding SA. Everything except kern_sa.c
compiles in GENERIC for i386. This is still a work-in-progress, but
this checkin covers most of the mechanical work (changing signalling
to be able to accomidate SA's process-wide signalling and re-adding
includes of sys/sa.h and savar.h). Subsequent changes will be much
more interesting.

Also, kern_sa.c has received partial cleanup. There's still more
to do, though.
 1.106.2.3  09-Oct-2010  yamt sync with head
 1.106.2.2  11-Aug-2010  yamt sync with head.
 1.106.2.1  04-May-2009  yamt sync with head.
 1.107.4.1  19-Oct-2008  haad Sync with HEAD.
 1.108.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.108.2.1  28-Apr-2009  skrll Sync with HEAD.
 1.109.4.3  31-May-2011  rmind sync with head
 1.109.4.2  05-Mar-2011  rmind sync with head
 1.109.4.1  03-Jul-2010  rmind sync with head
 1.109.2.2  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.109.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.111.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.113.8.1  05-Apr-2012  mrg sync to latest -current.
 1.113.4.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.113.4.2  30-Oct-2012  yamt sync with head
 1.113.4.1  17-Apr-2012  yamt sync with head
 1.116.4.1  18-May-2014  rmind sync with head
 1.116.2.2  03-Dec-2017  jdolecek update from HEAD
 1.116.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.118.2.1  22-Sep-2015  skrll Sync with HEAD
 1.119.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)

RSS XML Feed