History log of /openbsd-current/usr.bin/lastcomm/lastcomm.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.36 25-Feb-2024 deraadt

New accounting flag ABTCFI to indicate signal SIGILL + code ILL_BTCFI
has occurred in the process.
ok various people


# 1.35 19-Jan-2024 deraadt

pinsyscall(SYS_execve) will soon go away, so the sys/acct.h bit AEXECVE
can also be remove. Delete the code using it from the one program that
inspects it.


# 1.34 11-Dec-2023 deraadt

Report system call pinning violations.


Revision tags: OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.33 21-Feb-2023 deraadt

for process kills due to execve from non-pinned syscall address, export
a new AEXECVE bit to acct(4), and print it in lastcomm(8)
ok bluhm


# 1.32 01-Feb-2023 bluhm

Print the pid in lastcomm(1) output for post mortem analysis. Put
it in brackets after the command name, like syslogd does it in log
files. A while ago the process id was added to process accounting
in the kernel, so no ABI break this time.
OK deraadt@


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.35 19-Jan-2024 deraadt

pinsyscall(SYS_execve) will soon go away, so the sys/acct.h bit AEXECVE
can also be remove. Delete the code using it from the one program that
inspects it.


# 1.34 11-Dec-2023 deraadt

Report system call pinning violations.


Revision tags: OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.33 21-Feb-2023 deraadt

for process kills due to execve from non-pinned syscall address, export
a new AEXECVE bit to acct(4), and print it in lastcomm(8)
ok bluhm


# 1.32 01-Feb-2023 bluhm

Print the pid in lastcomm(1) output for post mortem analysis. Put
it in brackets after the command name, like syslogd does it in log
files. A while ago the process id was added to process accounting
in the kernel, so no ABI break this time.
OK deraadt@


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.34 11-Dec-2023 deraadt

Report system call pinning violations.


Revision tags: OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.33 21-Feb-2023 deraadt

for process kills due to execve from non-pinned syscall address, export
a new AEXECVE bit to acct(4), and print it in lastcomm(8)
ok bluhm


# 1.32 01-Feb-2023 bluhm

Print the pid in lastcomm(1) output for post mortem analysis. Put
it in brackets after the command name, like syslogd does it in log
files. A while ago the process id was added to process accounting
in the kernel, so no ABI break this time.
OK deraadt@


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.33 21-Feb-2023 deraadt

for process kills due to execve from non-pinned syscall address, export
a new AEXECVE bit to acct(4), and print it in lastcomm(8)
ok bluhm


# 1.32 01-Feb-2023 bluhm

Print the pid in lastcomm(1) output for post mortem analysis. Put
it in brackets after the command name, like syslogd does it in log
files. A while ago the process id was added to process accounting
in the kernel, so no ABI break this time.
OK deraadt@


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.32 01-Feb-2023 bluhm

Print the pid in lastcomm(1) output for post mortem analysis. Put
it in brackets after the command name, like syslogd does it in log
files. A while ago the process id was added to process accounting
in the kernel, so no ABI break this time.
OK deraadt@


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.31 04-Dec-2022 cheloha

userspace: remove vestigial '?' cases from top-level getopt(3) loops

getopt(3) returns '?' when it encounters a flag not present in the in
the optstring or if a flag is missing its option argument. We can
handle this case with the "default" failure case with no loss of
legibility. Hence, remove all the redundant "case '?':" lines.

Prompted by dlg@. With help from dlg@ and millert@.

Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2

ok naddy@ millert@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.30 13-Dec-2021 deraadt

acct(4) ac_tty shouldn't need NODEV from sys/param.h (which is kernel API),
-1 is sufficient to indicate the process had no controlling tty, removing
one more sys/param.h include in our userland
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.29 09-Sep-2019 bluhm

Inform about system call memory write protection and stack mapping
violations in system accounting. This will help to find missbehaving
programs and possible attacks. The flags bit field is full, so
recycle the PDP-11 compatibility on VAX. lastcomm(1) prints the
AMAP flag as 'M'. daily(8) prints a list of affected processes.
OK deraadt@


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.28 25-Jul-2019 bluhm

Show unveil(2) violators in lastcomm(1) output and daily mail.
input Janne Johansson, schwarze@; OK deraadt@ millert@


Revision tags: OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.27 27-Feb-2018 mpi

Stop mentionning/testing the for the ASU bit (S flag).

It is of no use since suser() no longer set this bit.

ok millert@, bluhm@


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_6_2_BASE
# 1.26 08-Jun-2017 bluhm

ASLR, W^X, and guard pages trigger processor traps that result in
SIGILL, SIGBUS, SIGSEGV signals. Make such memory violations visible
in lastcomm(1). This also works if a programm tries to hide them
with a signal handler. Manual kill -SEGV does not generate false
positives.
OK deraadt@


# 1.25 07-Jun-2017 bluhm

Add an acct(5) flag for pledge violations. Then lastcomm(1) shows
when something went wrong. This allows to monitor whether the
system is under attack and that the attack has been prevented by
OpenBSD pledge(2).
OK deraadt@ millert@ jmc@


Revision tags: OPENBSD_6_1_BASE
# 1.24 11-Mar-2017 guenther

Use sizeof directly instead of a macro from the scary <struct.h>

ok visa@ mpi@ millert@ kettenis@ deraadt@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.23 09-Oct-2015 deraadt

Change all tame callers to namechange to pledge(2).


# 1.22 07-Oct-2015 deraadt

tame "stdio rpath getpw". getpw is for user_from_uid(), which is a libc
cache on top of the getpw* functions.
ok semarie, who didn't spot the getpw need :)


Revision tags: OPENBSD_5_8_BASE
# 1.21 15-Mar-2015 millert

tzfile.h is an internal header that should never have been installed.
What's worse, the tzfile.h that gets installed is over 20 years old
and doesn't match the real tzfile.h in libc/time. This makes the
tree safe for /usr/include/tzfile.h removal. The TM_YEAR_BASE
define has been moved to time.h temporarily until its usage is
replaced by 1900 in the tree. Actual removal of tzfile.h is pending
a ports build. Based on a diff from deraadt@


Revision tags: OPENBSD_5_7_BASE
# 1.20 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.19 27-Nov-2013 okan

remove erroneous char cast to switch expression processing getopt(3);
not used in any cases.

ok deraadt@, guenther@, millert@


# 1.18 26-Nov-2013 deraadt

unsigned char casts for ctype
ok krw


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 16-Jul-2007 jmc

oops, missed a bit from tobias' diff - add "usage: " to usage();
from Tobias Stoeckmann


# 1.15 16-Jul-2007 jmc

sync usage(); from Tobias Stoeckmann


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE
# 1.14 14-Sep-2004 deraadt

lint begs for proactive casting, so we give it


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE
# 1.13 26-Jun-2003 deraadt

more proto fixes


# 1.12 10-Jun-2003 deraadt

mostly ansi cleanup; pval ok


# 1.11 03-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE
# 1.10 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


# 1.9 19-Nov-2001 mpech

kill more registers

millert@ ok


Revision tags: OPENBSD_3_0_BASE
# 1.8 18-Jul-2001 pvalchev

-Wall cleanup


# 1.7 12-Jul-2001 deraadt

first pass at a -Wall cleanup


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE
# 1.6 02-Jun-1997 flipk

mm, didn't quite get it the first time.
rearrange seek/test/print logic to avoid seeking to before
beginning of file. netbsd/PR #3634, John F. Woods <jfw@jfwhome.funhouse.com>


Revision tags: OPENBSD_2_1_BASE
# 1.5 03-Mar-1997 flipk

don't try to fseek to before the beginning of the file;
showed up after the fix to sys_lseek concerning negative offsets.
avoids '/var/account/acct: Invalid argument' messages.


# 1.4 15-Jan-1997 millert

getopt(3) returns -1 when out of args, not EOF, whee!


Revision tags: OPENBSD_2_0_BASE
# 1.3 26-Jun-1996 deraadt

rcsid


# 1.2 14-Dec-1995 deraadt

from netbsd; also print elapsed time


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision