schwarze [Fri, 19 Dec 2014 17:10:42 +0000 (17:10 +0000)]
Enforcing an arbitrary, implementation dependent, undocumented limit
by calling assert() when valid user input exceeds it is a bad idea.
Allocate the terminal font stack dynamically instead of crashing
above 10 entries. Issue found by jsg@ with afl.
krw [Fri, 19 Dec 2014 15:46:22 +0000 (15:46 +0000)]
Fix tree breakage due to unused variable after last commit.
krw [Fri, 19 Dec 2014 15:19:47 +0000 (15:19 +0000)]
Change scan and auth+assoc workq entries to taskq entries.
Identical diff originally and independently developed by blambert@.
reyk [Fri, 19 Dec 2014 15:14:48 +0000 (15:14 +0000)]
shuffle function declarations a bit; stylistic changes only.
tedu [Fri, 19 Dec 2014 15:14:04 +0000 (15:14 +0000)]
be like the kernel and only unroll if not small
reyk [Fri, 19 Dec 2014 15:07:33 +0000 (15:07 +0000)]
No need to include sys/types.h when sys/param.h is already included.
While here, sort includes a bit. No functional change.
deraadt [Fri, 19 Dec 2014 14:34:23 +0000 (14:34 +0000)]
sync
deraadt [Fri, 19 Dec 2014 14:30:44 +0000 (14:30 +0000)]
i386 unrolling blows up the media in a big way, due to -Os for
ramdisk libc builds. there has to be a better way without #ifdef's
in gross places, but I don't see it yet.
deraadt [Fri, 19 Dec 2014 14:23:58 +0000 (14:23 +0000)]
oops, forgot rndvar.h
ajacoutot [Fri, 19 Dec 2014 14:23:41 +0000 (14:23 +0000)]
Add rdp/rfb/vnc.
no objection from deraadt@
deraadt [Fri, 19 Dec 2014 14:19:41 +0000 (14:19 +0000)]
place the afterinstall: target correctly for static-only architectures
deraadt [Fri, 19 Dec 2014 14:15:50 +0000 (14:15 +0000)]
oops, forgot rndvar.h
tedu [Fri, 19 Dec 2014 14:12:00 +0000 (14:12 +0000)]
don't print vnodes if we didn't read them
tedu [Fri, 19 Dec 2014 14:08:20 +0000 (14:08 +0000)]
1. -T (totalflag) requires nlist too.
2. If we can't read a vnode, there's no way LIST_NEXT is going to be
meaningful.
3. set numvnodes before looping in case we return early.
getting better, but still not all fixed
krw [Fri, 19 Dec 2014 13:53:08 +0000 (13:53 +0000)]
Use taskq rather than workq to remove unwanted alias.
ok mikeb kettenis (for earlier version)
aoyama [Fri, 19 Dec 2014 13:17:35 +0000 (13:17 +0000)]
Move cbus.c, cbusvar.h, and pcex.c to new 'cbus' directory, to gather
'C-bus' device drivers in it.
More devices on cbus(4) will be added, hopefully :-)
ok miod@
reyk [Fri, 19 Dec 2014 13:04:07 +0000 (13:04 +0000)]
Support source-hash and random with tables and dynifs; not just pools.
This finally allows to use source-hash for dynamic loadbalancing, eg.
"rdr-to <hosts> source-hash", instead of just round-robin and least-states.
An older pre-siphash version of this diff was tested by many people.
OK tedu@ benno@
mcbride [Fri, 19 Dec 2014 12:31:03 +0000 (12:31 +0000)]
Comment is no longer true, remove it.
tedu [Fri, 19 Dec 2014 09:41:40 +0000 (09:41 +0000)]
remove hash.h. no longer needed. ok reyk
reyk [Fri, 19 Dec 2014 09:02:39 +0000 (09:02 +0000)]
Remove an unused sys/hash.h include from db_structinfo.c
(this file is only compiled with "option DDB_STRUCT").
ok guenther@
deraadt [Fri, 19 Dec 2014 07:42:49 +0000 (07:42 +0000)]
lonely bcopy called me by name
deraadt [Fri, 19 Dec 2014 07:23:57 +0000 (07:23 +0000)]
another handful of bcopy -> memcpy because there is no overlap
tedu [Fri, 19 Dec 2014 05:59:21 +0000 (05:59 +0000)]
start retiring the nointr allocator. specify PR_WAITOK as a flag as a
marker for which pools are not interrupt safe. ok dlg
tedu [Fri, 19 Dec 2014 05:48:36 +0000 (05:48 +0000)]
if you really must look inside the pool to decide if you've called
pool_init already, the pr_size field is the least worst field to peek at.
tedu [Fri, 19 Dec 2014 05:36:28 +0000 (05:36 +0000)]
add messages to #error so we know what's what (and so unifdef doesn't poop)
schwarze [Fri, 19 Dec 2014 04:57:11 +0000 (04:57 +0000)]
Rewrite the low-level UTF-8 parser from scratch.
It accepted invalid byte sequences like 0xc080-c1bf, 0xe08080-e09fbf,
0xeda080-edbfbf, and 0xf0808080-
f08fbfbf, produced valid roff Unicode
escape sequences from them, and the algorithm contained strong
defenses against any attempt to fix it.
This cures an assertion failure in the terminal formatter caused
by sneaking in ASCII 0x08 (backspace) by "encoding" it as an (invalid)
multibyte UTF-8 sequence, found by jsg@ with afl.
As a bonus, the new algorithm also reduces the code in the function
by about 20%.
brad [Fri, 19 Dec 2014 04:53:58 +0000 (04:53 +0000)]
Make use of m_defrag() in re_encap().
tedu [Fri, 19 Dec 2014 04:00:00 +0000 (04:00 +0000)]
rename buffer to digest, more clear. ok deraadt
lteo [Fri, 19 Dec 2014 03:58:02 +0000 (03:58 +0000)]
CA.sh and CA.pl are gone
lteo [Fri, 19 Dec 2014 03:14:19 +0000 (03:14 +0000)]
Sync message digest algorithms with the ones actually implemented in
"openssl dgst".
feedback/ok jmc@
tedu [Fri, 19 Dec 2014 02:50:27 +0000 (02:50 +0000)]
convert bcopy/zero to memcpy. ok deraadt djm
dlg [Fri, 19 Dec 2014 02:49:07 +0000 (02:49 +0000)]
timestamp empty pages, and only free them if theyve been idle for at least
a second.
this basically brings back the functionality that was trimmed in r1.53,
except this version uses ticks instead of very slow hardware clock reads.
ok tedu@
dlg [Fri, 19 Dec 2014 02:46:47 +0000 (02:46 +0000)]
the last commit changed LIST_INSERT_HEAD to TAILQ_INSERT_TAIL cos the
latter is cheaper, but i forgot to change the thing that pulls pages off
those lists to match the change in direction. the page lists went from LIFO
to FIFO.
this changes pool_update_curpage to use TAILQ_LAST so we go back to LIFO.
pointed out by and ok tedu@
brad [Fri, 19 Dec 2014 02:32:57 +0000 (02:32 +0000)]
Rearrange mostly vmxnet3_init() to look like other Ethernet drivers.
ok reyk@
tedu [Fri, 19 Dec 2014 02:29:40 +0000 (02:29 +0000)]
sha512 produces enough output, we can simplify extraction by not looping.
ok deraadt djm
dlg [Fri, 19 Dec 2014 02:15:25 +0000 (02:15 +0000)]
replace the page LISTS with page TAILQs. this will let me pull pages from
either end of the lists cheaply.
ok kettenis@ tedu@
tedu [Thu, 18 Dec 2014 23:59:28 +0000 (23:59 +0000)]
remove two useless and unused hash penalty defines
djm [Thu, 18 Dec 2014 23:58:04 +0000 (23:58 +0000)]
don't count partial authentication success as a failure against
MaxAuthTries; ok deraadt@
brad [Thu, 18 Dec 2014 23:26:12 +0000 (23:26 +0000)]
Merge in some commits from upstream..
- Fix that failure to add tcp to tcp base does not leak the socket.
- Fixes for wildcard addition and deletion, speedup for some cases.
- Fix that queries for noname CH TXT are REFUSED instead of nodata.
- Fix #616: retry xfer for zones with no content after command.
- Fix that expired zones stay expired after a server restart.
- RFC 7344: CDS and CDNSKEY (read in).
ok sthen@
jmc [Thu, 18 Dec 2014 21:26:09 +0000 (21:26 +0000)]
an hex -> a hex;
deraadt [Thu, 18 Dec 2014 21:06:24 +0000 (21:06 +0000)]
obvious non-overlap bcopy -> memcpy
tedu [Thu, 18 Dec 2014 21:00:12 +0000 (21:00 +0000)]
convert one hot looking bcopy to memcpy
tedu [Thu, 18 Dec 2014 20:59:21 +0000 (20:59 +0000)]
delete a whole mess of unnecessary caddr_t casts
reyk [Thu, 18 Dec 2014 20:59:04 +0000 (20:59 +0000)]
Update test - the hashkey log message disappeared.
schwarze [Thu, 18 Dec 2014 20:58:00 +0000 (20:58 +0000)]
Don't let .Ta creep into an already-closed list; same as for .It.
Fixes an assertion found by jsg@ with afl.
reyk [Thu, 18 Dec 2014 20:55:01 +0000 (20:55 +0000)]
Update relayd to use siphash instead of sys/hash. The source-hash,
loadbalance and hash modes use a random key by default that can be
forced to be a static key with a new configuration argument.
With input from Max Fillinger.
ok tedu@
jmc [Thu, 18 Dec 2014 20:45:50 +0000 (20:45 +0000)]
update usage() and the list of non-standard (i.e. non-posix) options;
ok schwarze
tedu [Thu, 18 Dec 2014 20:30:58 +0000 (20:30 +0000)]
document power capacity units. from david higgs
then change everything from mu to u, as more traditional.
ok deraadt
tedu [Thu, 18 Dec 2014 20:29:08 +0000 (20:29 +0000)]
only unroll on i386 and amd64 (where confirmed to be much faster).
naddy found sparc64 gets a little slower when unrolled.
ok deraadt
schwarze [Thu, 18 Dec 2014 20:15:31 +0000 (20:15 +0000)]
Only keep leading .Sm inside a list when it immediately precedes
the first .It. Otherwise, move it out together with whatever
follows. Fixing an assertion failure found by jsg@ with afl.
deraadt [Thu, 18 Dec 2014 20:01:33 +0000 (20:01 +0000)]
use suspend_randomness() and resume_randomness()
reyk [Thu, 18 Dec 2014 19:31:37 +0000 (19:31 +0000)]
Wrap more of these long lines.
tedu [Thu, 18 Dec 2014 19:28:44 +0000 (19:28 +0000)]
two more uses of siphash. better hash for ipv4. maybe not needed for rbtree
hint, but still pretty. ok deraadt
tedu [Thu, 18 Dec 2014 19:27:04 +0000 (19:27 +0000)]
simple to use siphash here. ok deraadt
tedu [Thu, 18 Dec 2014 19:26:46 +0000 (19:26 +0000)]
simple to use siphash here. ok deraadt
schwarze [Thu, 18 Dec 2014 19:22:47 +0000 (19:22 +0000)]
When the head of a list item is extended with a partial explicit
macro (for example .Xo) and never closed again, the item ends up
without a body block. This can even happen for list types that
usually don't have heads in the first place. So even in this
case, check for the existence of the body before accessing it.
NULL pointer access found by jsg@ with afl.
deraadt [Thu, 18 Dec 2014 19:22:21 +0000 (19:22 +0000)]
wrap unreasonably long lines
reyk [Thu, 18 Dec 2014 19:18:22 +0000 (19:18 +0000)]
The VM host might send multiple messages at once but vmt(4) only
processed one of time per second. Change the code to process all
queued messages without delay immediately. This fixes two things: a)
the vmt time sensor is available on boot when ntpd -s is loaded and b)
the random seeding on resume (OS_Resume message) is executed almost
immediately and not delayed by about 20 seconds.
ok deraadt@
tedu [Thu, 18 Dec 2014 19:02:56 +0000 (19:02 +0000)]
use siphash for pf_lb. for ipv6, we stretch it out a bit, but good enough.
ok reyk
schwarze [Thu, 18 Dec 2014 17:43:07 +0000 (17:43 +0000)]
Don't let the modulo operator divide by zero.
Found by jsg@ with afl.
deraadt [Thu, 18 Dec 2014 17:02:35 +0000 (17:02 +0000)]
perform cpu setperf at same position in sequence as acpi.c
deraadt [Thu, 18 Dec 2014 17:00:19 +0000 (17:00 +0000)]
suspend & resume RNG subsystem
deraadt [Thu, 18 Dec 2014 16:31:50 +0000 (16:31 +0000)]
suspend and resume the RNG (at what looks like the right spots)
ok reyk djm
deraadt [Thu, 18 Dec 2014 16:30:29 +0000 (16:30 +0000)]
When a VM resume occurs, request information from the VM and enqueue as
entropy - then do a RNG resume.
If the VM signals a boot/reboot/suspend action, push the RNG into suspend.
ok reyk djm
deraadt [Thu, 18 Dec 2014 16:27:30 +0000 (16:27 +0000)]
Create a suspend/resume infrastructure for the RNG. At suspend time,
process all queued entropy and create a brand new pool to prevent
backtracking upon resume. At resume time, process the entropy queue
(since other resume code paths which run earlier can enqueue entropy)
and force all higher to reseed.
ok reyk djm
deraadt [Thu, 18 Dec 2014 16:23:25 +0000 (16:23 +0000)]
If support is present, use rdrand() at resume time. Make the rdrand()
function easier to call.
ok reyk djm
krw [Thu, 18 Dec 2014 15:29:30 +0000 (15:29 +0000)]
Change the link state change routing message generation to a taskq.
One less workq to worry about.
Tweaks from many. ok mpi@ mikeb@
mpi [Thu, 18 Dec 2014 10:51:35 +0000 (10:51 +0000)]
Merge from NetBSD r1.54 from Matthias Drochner:
--
kick out the error-prone handcrafted single-linked list of cardbus
functions; replace by a simple *array[8]
--
In other words, prevent a use after free when removing a cardbus
function.
ok deraadt@, miod@
dlg [Thu, 18 Dec 2014 10:50:02 +0000 (10:50 +0000)]
ansi function prototypes. no functional change.
dlg [Thu, 18 Dec 2014 10:46:45 +0000 (10:46 +0000)]
white space tweaks, no functional change.
dlg [Thu, 18 Dec 2014 10:45:29 +0000 (10:45 +0000)]
replace splhigh and a simplelock with a mutex.
slight tweak and testing by deraadt@
ok miod@
mpi [Thu, 18 Dec 2014 10:44:17 +0000 (10:44 +0000)]
If a host controller has been detached or reported a halt condition it
should be considered as dead. In such condition the stack no longer
submits I/O or schedules any USB task for its bus.
However we need an explore task to detach the root hub since only the
task thread is supposed to discover buses and attach/detach devices in
order to avoid races.
So reset the bus' dying flag when marking it as disconnecting in order
to let the task be scheduled. This should be safe because a detached
or halted HC should not trigger any new interrupt.
Fix a panic when detaching USB PCMCIA cards reported by Tilo Stritzky.
reyk [Thu, 18 Dec 2014 10:18:25 +0000 (10:18 +0000)]
Document * and :: to listen on all IPv4 or IPv6 addresses.
reyk [Thu, 18 Dec 2014 10:10:11 +0000 (10:10 +0000)]
Accept * as an alias for the default ipv4 listen address.
OK jsg@
reyk [Thu, 18 Dec 2014 09:00:19 +0000 (09:00 +0000)]
"tcp nodelay" shouldn't be discussing relaying SSH; this was a remnant
from relayd.conf.5.
From Ross L Richardson
mlarkin [Thu, 18 Dec 2014 05:33:48 +0000 (05:33 +0000)]
Unmap the MP hatch and ACPI resume trampolines when not in active use.
ok deraadt@
schwarze [Thu, 18 Dec 2014 03:09:42 +0000 (03:09 +0000)]
The code is already careful to not add items to lists that were
already closed. In this respect, also consider lists closed
that have broken another block, their closure pending until the
end of the broken block. This avoids syntax tree corruption
leading to a NULL pointer access found by jsg@ with afl.
tedu [Wed, 17 Dec 2014 22:23:33 +0000 (22:23 +0000)]
the easier way to put a buffer on the stack is to put it on the stack,
not with alloca(). found by dickman; ok kettenis
tedu [Wed, 17 Dec 2014 19:42:44 +0000 (19:42 +0000)]
unroll loops. much faster on amd64. ok deraadt millert
tedu [Wed, 17 Dec 2014 19:42:15 +0000 (19:42 +0000)]
remove lock.h from uvm_extern.h. another holdover from the simpletonlock
era. fix uvm including c files to include lock.h or atomic.h as necessary.
ok deraadt
tedu [Wed, 17 Dec 2014 19:40:24 +0000 (19:40 +0000)]
unroll loops for sha2. quite a bit faster for amd64.
ok deraadt millert
tedu [Wed, 17 Dec 2014 19:39:20 +0000 (19:39 +0000)]
minimal removal of simplelock to eliminate lock.h dependency
tedu [Wed, 17 Dec 2014 19:39:01 +0000 (19:39 +0000)]
fix/reduce header dependencies. clock.c doesn't need any of this uvm.
ok deraadt kettenis
schwarze [Wed, 17 Dec 2014 18:45:00 +0000 (18:45 +0000)]
Be a bit more lenient in what to accept for section names given
as the first man(1) command line argument without -s:
Accept digits like "1", "2"; digit+letter like "3p", "1X"; and "n".
Issue reported by Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux).
doug [Wed, 17 Dec 2014 17:51:33 +0000 (17:51 +0000)]
Add size_t to int checks for SSL functions.
libtls accepts size_t for lengths but libssl accepts int. This verifies
that the input does not exceed INT_MAX. It also avoids truncating size_t
when comparing with int and adds printf-style attributes for
tls_set_error().
with input from deraadt@ and tedu@
ok tedu@
millert [Wed, 17 Dec 2014 15:49:23 +0000 (15:49 +0000)]
Use log_warnx() not log_warn() for mail loop warning since errno
is not set. OK gilles@
kettenis [Wed, 17 Dec 2014 15:27:49 +0000 (15:27 +0000)]
Avoid premature masking in the interrupt handler code that checks for removed
hardware.
ok mpi@, deraadt@
deraadt [Wed, 17 Dec 2014 15:27:17 +0000 (15:27 +0000)]
remove simplelocks (trivial)
deraadt [Wed, 17 Dec 2014 15:26:21 +0000 (15:26 +0000)]
delete simplelocks
deraadt [Wed, 17 Dec 2014 15:23:40 +0000 (15:23 +0000)]
remove simplelocks
ok tedu
deraadt [Wed, 17 Dec 2014 15:05:52 +0000 (15:05 +0000)]
pretty easy removal of simplelocks
ok miod (a while back)
deraadt [Wed, 17 Dec 2014 15:01:45 +0000 (15:01 +0000)]
remove simplelocks
ok kettenis
deraadt [Wed, 17 Dec 2014 14:40:03 +0000 (14:40 +0000)]
remove simplelocks use
ok kettenis mpi
reyk [Wed, 17 Dec 2014 13:54:27 +0000 (13:54 +0000)]
Add missing flag in the description field.
jsg [Wed, 17 Dec 2014 11:53:43 +0000 (11:53 +0000)]
add umcs(4)
mpi [Wed, 17 Dec 2014 09:57:13 +0000 (09:57 +0000)]
Remove the "multicast_" prefix from the fields a multicast-only struct.
Prodded by claudio@ and mikeb@
mpi [Wed, 17 Dec 2014 09:45:59 +0000 (09:45 +0000)]
Use an interface index instead of a pointer for multicast options.
Output interface (port) selection for multicast traffic is not done via
route lookups. Instead the output ifp is registred when setsockopt(2)
is called with the IP{V6,}_MULTICAST_IF option. But since there is no
mechanism to invalidate such pointer stored in a pcb when an interface
is destroyed/removed, it might lead your kernel to fault.
Prevent a fault upon resume reported by frantisek holop, thanks!
ok mikeb@, claudio@
guenther [Wed, 17 Dec 2014 06:58:10 +0000 (06:58 +0000)]
Prefer MADV_* over POSIX_MADV_* in kernel for consistency: the latter
doesn't have all the values and therefore can't be used everywhere.
ok deraadt@ kettenis@
deraadt [Wed, 17 Dec 2014 06:05:51 +0000 (06:05 +0000)]
delete archaic simplelock use.
ok miod
brad [Wed, 17 Dec 2014 03:50:53 +0000 (03:50 +0000)]
Do as the datasheet recommends and disable the RX filter before adjusting
the RX filter.
From FreeBSD