Conrad Meyer 8dd74db753 auditd(8): fix long-standing uninitialized memory use bug
The bogus use could lead to an infinite loop depending on how fast the
audit_warn script to execute.

By fixing read(2) interruptibility, d060887 (r335899) revealed another bug
in auditd_wait_for_events.  When read is interrupted by SIGCHLD,
auditd_reap_children will always return with errno set to ECHILD.  But
auditd_wait_for_events checks errno after that point, expecting it to be
unchanged since read.  As a result, it calls auditd_handle_trigger with bogus
stack garbage.  The result is the error message "Got unknown trigger 48."  Fix
by simply ignoring errno at that point; there's only one value it could've
possibly had, thanks to the check up above.

The best part is we've had a fix for this for like 18 months and just never
merged it.  Merge it now.

PR:		234209
Reported by:	Marie Helene Kvello-Aune <freebsd AT mhka.no> (2018-12)
Submitted by:	asomers (2018-07)
Reviewed by:	me (in OpenBSM)
Obtained from:	OpenBSM
X-MFC-With:	r335899
Security:	¯\_(ツ)_/¯
Differential Revision:	https://github.com/openbsm/openbsm/pull/45
2019-11-28 00:46:03 +00:00
..
2019-08-11 06:26:03 +00:00
2019-11-18 04:22:04 +00:00
2019-11-01 11:28:43 +00:00
2019-06-29 18:41:40 +00:00
2019-09-26 01:50:20 +00:00
2019-09-01 16:41:24 +00:00
2019-11-07 18:06:44 +00:00
2019-11-20 19:43:34 +00:00
2019-05-08 11:04:09 +00:00
2019-09-26 18:24:04 +00:00
2019-11-20 23:56:20 +00:00
2019-11-03 01:25:46 +00:00
2019-09-12 00:19:16 +00:00
2019-07-04 08:40:10 +00:00
2019-08-22 18:52:30 +00:00