Stop taking the buffer cache state into account when calculate the free and
inactive page shortages for the pagedaemon. This doesn't make a lot of
sense anymore now that the buffer flipper has been removed. And it makes
it easier to reason about the pagedaemon.
ok deraadt@, beck@, kirill@ (some time ago)
The introduction of stack protector support for gcc 4 on alpha some 14 years
ago required the logical stack frame to be laid out in reverse order (this is
a requirement of the MI stack protector code in gcc).
This move, however, forgot to update the preconditions of the "*adddi_fp_hack"
insn, which is used to perform specific stack or frame pointer adjustment in
the prologue.
The change in frame layout would make its preconditions never allow it to be
used anymore, causing internal compiler errors when attempting to compile
routines with more than about 32KB of locals.
Such code appears to be rare enough that this issue hasn't been noticed until
very recently by martijn@.
ldd(1) has traditionally printed the command: header itself, before
starting the program with LD_TRACE_LOADED_OBJECTS. There are various
circumstances where the program does not properly trace, so the output
looks weird. It is also different from the manual "env LD_TRACE_LOADED_OBJECTS="
method. This change makes ld.so print the command header itself.
ok kettenis
using pledge execpromises here is pointless because ldd is just a wrapper
around setenv LD_TRACE_LOADED_OBJECTS. Because the setenv method is
available to everyone, ld.so has to protect the process itself.
ok kettenis
libc initialization now aborts if a setuid/setgid program does not
have the global variable _permit_setugid declaring that it is setuid/setgid.
The more important packages have been fixed, and the long tail will be
fixed by people who encounter this problem.
ok sthen
Handle errno properly when accepting a PPTP connection. Previously,
file descriptor exhaustion could cause the accept loop to spin
indefinitely.
From Acts1631
Reject a PPTP control packet with an invalid length field.
Previously, an invalid packet could cause the input event loop to spin
indefinitely, effectively hanging the process until it was terminated.
From Acts1631
Don't attempt to read firmware in DVAT_RESUME. It most defenitely won't
work! Instead, if we find that the firmware wasn't read sucessfully
at mountroot time, return early and skip further initialization. The
device will be just as non-functional as before the suspend happened.
ok deraadt@
Reject a PADR which has an AC-Cookie of invalid length. Also, fix
the duplicate cookie check, which mistakenly used the pointer instead
of the value as the hash key.
Align TLVs in tlvspace, including the first one, to a 32-bit boundary
so that tlv->value is properly aligned to its consumers. Don't use
ALIGNBYTES, which is for another purpose and not what we need here.
Point out by a colleague in IIJ.
The TX-done interrupt should read from consumer register, not producer. I
made this mistype during conversion bse(4) output to MP-safe.
From Acts1631. OK kettenis.
Instead of overwriting wide characters manually when combining, use the
normal cell write path. Fixes problems with overlapping wide characters
and those close to the last column.