jca [Fri, 16 Oct 2015 20:43:27 +0000 (20:43 +0000)]
Unbreak route6d.
Instead of breaking sendmsg(2) by adding unneeded space to its cmsg
item, add space to the cmsg used by recvmsg(2), where it will be used
to get the incoming packet hop limit.
Reported by several over the last years, and more recently by 'bsdsx',
who tested it against NetBSD route6d. Also works against Quagga ripng.
ok deraadt@ sthen@
tedu [Fri, 16 Oct 2015 20:25:09 +0000 (20:25 +0000)]
save some file descriptors. instead of a pipe, use kevent to watch parent
tedu [Fri, 16 Oct 2015 20:12:06 +0000 (20:12 +0000)]
naddy would like the child to exit when the parent dies.
hook up a pipe between them and watch for eof in the child.
ajacoutot [Fri, 16 Oct 2015 20:12:00 +0000 (20:12 +0000)]
Missing local.
ok schwarze@
florian [Fri, 16 Oct 2015 20:11:59 +0000 (20:11 +0000)]
No longer talk about -b flag, it's gone.
ajacoutot [Fri, 16 Oct 2015 19:55:39 +0000 (19:55 +0000)]
Drop usage of TMPDIR.
While here, stop refering to /tmp/sysmerge.XXXXXXXXXX, that's a script
internal we don't need to know about.
deraadt [Fri, 16 Oct 2015 19:33:15 +0000 (19:33 +0000)]
sync
schwarze [Fri, 16 Oct 2015 19:21:05 +0000 (19:21 +0000)]
test mixing of tabs with Ta
mpi [Fri, 16 Oct 2015 19:07:24 +0000 (19:07 +0000)]
Make sched_barrier() use its own task queue to avoid deadlocks.
Prevent a deadlock from occuring when intr_barrier() is called from
a non-primary CPU in the watchdog task, also enqueued on ``systq''.
ok kettenis@
tedu [Fri, 16 Oct 2015 18:47:52 +0000 (18:47 +0000)]
life is simpler if all requests go in the fifo, and then just remove them
in the error case instead of duplicating code.
djm [Fri, 16 Oct 2015 18:40:49 +0000 (18:40 +0000)]
better handle anchored FQDNs (e.g. 'cvs.openbsd.org.') in hostname
canonicalisation - treat them as already canonical and remove the
trailing '.' before matching ssh_config; ok markus@
tedu [Fri, 16 Oct 2015 18:38:53 +0000 (18:38 +0000)]
deraadt tells me i'm supposed to check if connect() actually worked.
tedu [Fri, 16 Oct 2015 18:29:05 +0000 (18:29 +0000)]
two phase handling for tcp so that slow connects don't stall the process
mmcc [Fri, 16 Oct 2015 18:21:43 +0000 (18:21 +0000)]
Cast isspace() argument to unsigned char.
ok jca@
florian [Fri, 16 Oct 2015 18:17:12 +0000 (18:17 +0000)]
Move -t and -w functionality to -a. Both flags are in the way for a
merge with ping(8). Let's see if we can shove every weird and special v6
functionality into -a.
suggested by and OK sthen@
mmcc [Fri, 16 Oct 2015 17:56:07 +0000 (17:56 +0000)]
Modernize allocation by:
* removing unneeded casts of void* return values
* replacing varied and creative error messages with the allocation
function's name
* replacing errx() with err() so that the errno string is reported
ok beck@, jung@, millert@
mmcc [Fri, 16 Oct 2015 17:14:04 +0000 (17:14 +0000)]
Cast iscntrl()'s arg to unsigned char.
ok nicm@
mmcc [Fri, 16 Oct 2015 17:07:24 +0000 (17:07 +0000)]
0 -> NULL when comparing with a char*.
ok dtucker@, djm@.
deraadt [Fri, 16 Oct 2015 17:03:31 +0000 (17:03 +0000)]
Repair the pty check for kernels without pty support.
tobias [Fri, 16 Oct 2015 16:54:38 +0000 (16:54 +0000)]
Check file sizes only for regular files. The current code breaks savecore
due to its kvm handling.
ok deraadt
bluhm [Fri, 16 Oct 2015 16:10:10 +0000 (16:10 +0000)]
Pledge the syslogd privsep process with "stdio rpath wpath cpath
inet dns getpw sendfd proc exec".
OK deraadt@
schwarze [Fri, 16 Oct 2015 15:54:55 +0000 (15:54 +0000)]
The hosts.lpd examples file does not contain a single example.
The file format is so simple that no example is needed.
All relevant documentation is already available
from the proper place, which is the lpd(8) manual.
Consequently, delete the empty file.
OK millert@ dcoppa@ beck@ deraadt@
nicm [Fri, 16 Oct 2015 15:39:14 +0000 (15:39 +0000)]
Allow PTMGET with "tty rpath wpath" but restrict only to /dev/ptm by
checking cdevsw. ok deraadt
tedu [Fri, 16 Oct 2015 15:35:05 +0000 (15:35 +0000)]
save request length in cache. naddy noticed we weren't getting any hits.
jsing [Fri, 16 Oct 2015 15:15:39 +0000 (15:15 +0000)]
Remove pointless externs - the structs are declared in the same files a
few lines above.
jsing [Fri, 16 Oct 2015 15:12:30 +0000 (15:12 +0000)]
Expand DECLARE_ASN1_ALLOC_FUNCTIONS and DECLARE_ASN1_FUNCTIONS_const
macros. The only change in the generated assembly is due to line numbering.
jsing [Fri, 16 Oct 2015 15:09:28 +0000 (15:09 +0000)]
Remove pointless uses of DECLARE_ASN1_ENCODE_FUNCTIONS_const.
DECLARE_ASN1_FUNCTIONS_const already includes this macro so using both
means we end up with duplicate function prototypes and externs.
deraadt [Fri, 16 Oct 2015 14:45:16 +0000 (14:45 +0000)]
wrap a long line
beck [Fri, 16 Oct 2015 14:23:22 +0000 (14:23 +0000)]
Fix use of pointer value after BIO_free, and remove senseless NULL checks.
ok bcook@
deraadt [Fri, 16 Oct 2015 14:20:48 +0000 (14:20 +0000)]
Always allow a r/w opening of /dev/null though the namei check. This
pattern is common, especially because of daemon(3) usage. Will probably
help some daemons move their pledge() calls further upwards.
ok doug,
deraadt [Fri, 16 Oct 2015 14:13:52 +0000 (14:13 +0000)]
ugly white space
semarie [Fri, 16 Oct 2015 14:04:11 +0000 (14:04 +0000)]
delete pledge_bind_check() function and remove pledge_bind_check() call from sys_bind().
bind(2) still require PLEDGE_INET or PLEDGE_UNIX in order to be called, due to
SYS_bind entry in pledge_syscalls array. The diff restores also the ability for
PLEDGE_UNIX to call bind(2) (pledge_bind_check function missed that).
problem spotted by doug@
OK deraadt@
deraadt [Fri, 16 Oct 2015 14:00:37 +0000 (14:00 +0000)]
Place TIOCSTI reminder block better
deraadt [Fri, 16 Oct 2015 13:59:58 +0000 (13:59 +0000)]
For "tty" pledges, treat TIOCGPGRP and TIOCGWINSZ like TIOCGETA -
returning ENOTTY instead of killing the process.
tobias [Fri, 16 Oct 2015 13:54:45 +0000 (13:54 +0000)]
Merge nlist out of boundary access fix with other nlist implementations.
While at it, merge style and typo fixes back into nlist(3), too.
ok deraadt, jsing, millert
jsing [Fri, 16 Oct 2015 13:49:53 +0000 (13:49 +0000)]
Put tls_config_verify_client_optional() in the right place.
jsing [Fri, 16 Oct 2015 13:48:44 +0000 (13:48 +0000)]
Fix tpyo.
millert [Fri, 16 Oct 2015 13:37:43 +0000 (13:37 +0000)]
Implement real "flock" request and add it to userland programs that
use pledge and file locking. OK deraadt@
beck [Fri, 16 Oct 2015 12:41:29 +0000 (12:41 +0000)]
actually include the prerequisite dependency for BIO instead of doing nastyness
mpi [Fri, 16 Oct 2015 12:36:02 +0000 (12:36 +0000)]
If a DOWN route entry is passed to a L2 output function, be dumb and
simply use it.
In most of the cases doing a route lookup at this point is a noop as
it will return you the same DOWN entry you already have.
The exception is the case where the route has been removed from tree
since your kernel looked for it. So what? It's just a blue packet.
Note that this "exception" can only happen if your sending path does
not run under the KERNEL_LOCK.
ok mikeb@
stsp [Fri, 16 Oct 2015 12:17:58 +0000 (12:17 +0000)]
Put some iwm(4) debug code into #ifdef IWM_DEBUG.
ok mpi@
stsp [Fri, 16 Oct 2015 12:17:38 +0000 (12:17 +0000)]
Clean up iwm(4) scanning logic a bit: Reset sc_scanband in callers of
iwm_mvm_scan_request() and always call ieee80211_end_scan() when done.
ok mpi@
stsp [Fri, 16 Oct 2015 10:29:55 +0000 (10:29 +0000)]
Oops, committed old version of previous diff with a typo in it: NLL -> NULL
stsp [Fri, 16 Oct 2015 10:04:56 +0000 (10:04 +0000)]
In iwm(4), correctly size and map the mbuf used for large firmware commands.
Fixes occasional firmware errors while bringing the interface up or scanning.
ok phessler@
nicm [Fri, 16 Oct 2015 07:43:29 +0000 (07:43 +0000)]
Don't free after calling paste_set but do after evbuffer_add, from Theo
Buehler.
tobias [Fri, 16 Oct 2015 07:40:12 +0000 (07:40 +0000)]
Validate parsed ELF values to prevent out of boundary accesses.
While at it, return proper return value when encountering a stripped
binary. Instead of -1 (illegal file), it should be the amount of symbols
that were tried to be resolved.
ok millert
tobias [Fri, 16 Oct 2015 07:37:46 +0000 (07:37 +0000)]
Disable !-command to escape to a shell. You are supposed to play, press
^Z, or open up another terminal if there is something else to do.
ok deraadt
tobias [Fri, 16 Oct 2015 07:33:47 +0000 (07:33 +0000)]
Add native support for ed-style diffs. No need to pledge "proc exec" anymore.
ok deraadt
deraadt [Fri, 16 Oct 2015 07:01:53 +0000 (07:01 +0000)]
doug and I think the kernel has enough features to support
pledge "stdio rpath wpath cpath getpw proc exec tty" now.
It will be hard to drop many of those features unless cu becomes
privsep for the "upload" commands.
deraadt [Fri, 16 Oct 2015 06:42:02 +0000 (06:42 +0000)]
FIOSETOWN/FIOGETOWN were added to "ioctl", but study finds no programs
currently needing them. delete 'em for now.
ok doug
doug [Fri, 16 Oct 2015 06:40:53 +0000 (06:40 +0000)]
Add TIOCCBRK and TIOCSDTR to the whitelist for pledge ioctl.
cu(1) uses these.
ok deraadt@
doug [Fri, 16 Oct 2015 05:55:23 +0000 (05:55 +0000)]
Pledge support for the parent/resolver in identd(8).
This limits the resolver to just "stdio getpw" or "stdio getpw rpath"
depending on whether ~/.noident files are checked.
The child/listener cannot use pledge yet because it calls a sysctl that
hasn't been whitelisted.
"commit" deraadt@
doug [Fri, 16 Oct 2015 05:35:19 +0000 (05:35 +0000)]
Pledge for ftp(1) in non-interactive mode.
We will iterate and remove some of the pledges in the future. This is
conservative for now.
Tested by sthen@ and myself.
ok deraadt@
miod [Fri, 16 Oct 2015 04:20:54 +0000 (04:20 +0000)]
Remove -B from EXAMPLES; reminded by jmc@
mmcc [Fri, 16 Oct 2015 03:17:56 +0000 (03:17 +0000)]
Add allocarray(), an overflow-safe allocation function.
We avoided reallocation support because it demands more fancy footwork
to deal with the prepended link struct.
This has been on my mind for a while, and a 2010 security review of mksh
by the Android security team's Chris Palmer suggested it.
ok nicm@. Also discussed with millert@ and tedu@.
deraadt [Fri, 16 Oct 2015 03:05:25 +0000 (03:05 +0000)]
sync
tedu [Fri, 16 Oct 2015 02:09:31 +0000 (02:09 +0000)]
fine tune the logging some more
tedu [Fri, 16 Oct 2015 01:58:28 +0000 (01:58 +0000)]
simplify logging functions. once a daemon, always a daemon
tedu [Fri, 16 Oct 2015 01:55:19 +0000 (01:55 +0000)]
safety check that we're dealing with the filter we expect
tedu [Fri, 16 Oct 2015 01:50:39 +0000 (01:50 +0000)]
most things should be static
tedu [Fri, 16 Oct 2015 01:37:14 +0000 (01:37 +0000)]
exit(1) is better for the impossible condition
djm [Thu, 15 Oct 2015 23:51:40 +0000 (23:51 +0000)]
fix some signed/unsigned integer type mismatches in format
strings; reported by Nicholas Lemonias
schwarze [Thu, 15 Oct 2015 23:46:20 +0000 (23:46 +0000)]
Do not abuse .Nm for emphasis;
patch from Michael Reed <m dot reed at mykolab dot com>.
Also drop .Tn while here.
schwarze [Thu, 15 Oct 2015 23:35:38 +0000 (23:35 +0000)]
Delete two preprocessor constants that are no longer used.
Patch from Michael Reed <m dot reed at mykolab dot com>.
djm [Thu, 15 Oct 2015 23:08:23 +0000 (23:08 +0000)]
argument to sshkey_from_private() and sshkey_demote() can't be NULL
deraadt [Thu, 15 Oct 2015 23:06:46 +0000 (23:06 +0000)]
After spawning, the parent can pledge "stdio rpath wpath cpath"
from rob pierce
mmcc [Thu, 15 Oct 2015 22:53:50 +0000 (22:53 +0000)]
Remove three distracting aliases for NULL.
ok nicm@
schwarze [Thu, 15 Oct 2015 22:45:07 +0000 (22:45 +0000)]
Simplify the part of args() that is handling .Bl -column phrases:
Delete manual "Ta" handling because macro handling should
not be done in an argument parser but should be left to the
macro parsers, which exist anyway and work well.
No functional change, minus 40 lines of code.
Confusing and redundant code found while investigating
an old bug report from tim@.
schwarze [Thu, 15 Oct 2015 22:27:09 +0000 (22:27 +0000)]
When blk_full() handles an .It line in .Bl -column and indirectly
calls phrase_ta() to handle a .Ta child macro, advance the body
pointer accordingly, such that a subsequent tab character rewinds
the right body block and doesn't fail an assertion. That happened
when there was nothing between the .Ta and the tab character.
Bug reported by tim@ some time ago.
tedu [Thu, 15 Oct 2015 22:21:28 +0000 (22:21 +0000)]
it is perhaps better style to not call close() on -1, even if harmless
tedu [Thu, 15 Oct 2015 22:17:43 +0000 (22:17 +0000)]
make sure req is zeroed in tcp case
tedu [Thu, 15 Oct 2015 22:12:26 +0000 (22:12 +0000)]
better memory handling of the request/cache chain
tedu [Thu, 15 Oct 2015 21:59:54 +0000 (21:59 +0000)]
do not insert entry into cache until it's fully formed
tedu [Thu, 15 Oct 2015 21:56:52 +0000 (21:56 +0000)]
doh, not all requests are the same size. check len first.
tedu [Thu, 15 Oct 2015 21:39:15 +0000 (21:39 +0000)]
assert is the wrong tool
tedu [Thu, 15 Oct 2015 21:35:27 +0000 (21:35 +0000)]
the inet sockets don't work well with inet6 addrs. pick family from addr.
detected by naddy
tedu [Thu, 15 Oct 2015 21:27:37 +0000 (21:27 +0000)]
everybody can build rebound
tedu [Thu, 15 Oct 2015 21:25:44 +0000 (21:25 +0000)]
no mail for _rebound. deraadt
tedu [Thu, 15 Oct 2015 21:25:05 +0000 (21:25 +0000)]
introduce logerr, since most logging is followed by exit
sthen [Thu, 15 Oct 2015 21:22:11 +0000 (21:22 +0000)]
don't allow NSD to pick up libevent from /usr/local if the libevent2
package is installed.
tedu [Thu, 15 Oct 2015 21:20:09 +0000 (21:20 +0000)]
now with _rebound user, we can try a little harder at privdrop
tedu [Thu, 15 Oct 2015 21:19:06 +0000 (21:19 +0000)]
_rebound user and group (52)
tedu [Thu, 15 Oct 2015 20:58:14 +0000 (20:58 +0000)]
make the HUP interlocking in the parent work better.
deraadt [Thu, 15 Oct 2015 20:47:11 +0000 (20:47 +0000)]
trivial KNF
bluhm [Thu, 15 Oct 2015 20:26:47 +0000 (20:26 +0000)]
In syslogd replace the dprintf() macro with a logdebug() function
as dprintf(3) is in libc now and does something different.
OK guenther@
bluhm [Thu, 15 Oct 2015 20:14:23 +0000 (20:14 +0000)]
Pledge login_token with "stdio rpath wpath cpath fattr getpw tty".
OK deraadt@
tedu [Thu, 15 Oct 2015 20:13:57 +0000 (20:13 +0000)]
just a space in usage, from deraadt
mmcc [Thu, 15 Oct 2015 20:01:53 +0000 (20:01 +0000)]
Remove an unused included header (sys/stat.h).
tedu [Thu, 15 Oct 2015 19:51:45 +0000 (19:51 +0000)]
add a hint about the config file, until it changes
tedu [Thu, 15 Oct 2015 19:49:22 +0000 (19:49 +0000)]
child can be pledged down a bit to just sockets and io
bluhm [Thu, 15 Oct 2015 19:48:44 +0000 (19:48 +0000)]
When using a pf rule with both nat-to and rdr-to, it could happen
that the nated source port was reused as destination port. Do not
initialize nport at the beginning of the function, but where it is
needed.
OK sashan@
tedu [Thu, 15 Oct 2015 19:43:30 +0000 (19:43 +0000)]
import rebound, a lightweight dns proxy, for further polishing
mmcc [Thu, 15 Oct 2015 19:36:50 +0000 (19:36 +0000)]
Introduce an unsigned char variable for the ctype function calls.
ok millert@
deraadt [Thu, 15 Oct 2015 19:35:24 +0000 (19:35 +0000)]
Don't Xr flock, since that is not the locking method used.
ok millert
miod [Thu, 15 Oct 2015 19:31:15 +0000 (19:31 +0000)]
Remove disklabel -B (NUMBOOT) support. All the platforms which used to need
it are now using MI installboot for that purpose.
ok krw@ deraadt@
bluhm [Thu, 15 Oct 2015 19:30:03 +0000 (19:30 +0000)]
Avoid a race between fopen(3) and fchmod(2). Use umask(2) and
unlink(2) and fopen(3) to prevent an attacker to open an old file
with wrong permissions before the secret is written into it. This
also guarantees that a new file with correct permissions is created.
Without fchmod(2) "fattr" can be removed from pledge.
with and OK deraadt@
miod [Thu, 15 Oct 2015 19:29:32 +0000 (19:29 +0000)]
No need to create links for xxboot now that MI installboot is the preferred
way to install boot blocks.
miod [Thu, 15 Oct 2015 19:28:31 +0000 (19:28 +0000)]
Use MI installboot instead of disklabel -B to install boot blocks.
ok krw@ deraadt@
miod [Thu, 15 Oct 2015 19:27:30 +0000 (19:27 +0000)]
Add an extra argument to bootstrap() to allow for a limited overlap between an
existing partition and the boot blocks span, and update all callers to require
an overlap limit of zero sectors (thus not changing their behaviour).
Then, add proper support for vax: copy the 2nd-stage boot block to /boot and
install the 1st-stage boot block at the beginning of the disk, retaining the
disklabel; allow for an overlap of up to 16 sectors, which is perfectly fine
as long as your `a' partition is FFS.
Note that regular installs will not even have such an overlap, because the
default OpenBSD span on a disk on vax starts at sector 16, but installation
media use sperific layout which require this.
ok krw@
sthen [Thu, 15 Oct 2015 19:18:01 +0000 (19:18 +0000)]
add missing comma and missing range restriction, found by smilint