nicm [Fri, 23 Oct 2015 16:07:29 +0000 (16:07 +0000)]
tmux can call pledge() in main with large set and then reduce it
slightly in the server to "stdio rpath wpath cpath fattr unix recvfd
proc exec tty ps".
nicm [Fri, 23 Oct 2015 16:02:21 +0000 (16:02 +0000)]
Format for scroll position, from Jorge Morante.
deraadt [Fri, 23 Oct 2015 15:53:49 +0000 (15:53 +0000)]
Allow SIOCGIFINFO_IN6
nicm [Fri, 23 Oct 2015 15:52:54 +0000 (15:52 +0000)]
Use tty_term_flag not _has for XT, and make -2 force direct use of
256-colour escape sequences (so setaf/setab can be bypassed if needed).
jung [Fri, 23 Oct 2015 15:48:16 +0000 (15:48 +0000)]
document -h flag and add a .Xr
ok sunil millert
benno [Fri, 23 Oct 2015 15:47:54 +0000 (15:47 +0000)]
ndp -n -d <addr> does dns lookups, even with -n. it should not.
found through pledge. ok deraadt@
claudio [Fri, 23 Oct 2015 15:22:49 +0000 (15:22 +0000)]
netstart bits for tap(4)
claudio [Fri, 23 Oct 2015 15:18:01 +0000 (15:18 +0000)]
Sync (MAKEDEV addition of tap)
claudio [Fri, 23 Oct 2015 15:17:24 +0000 (15:17 +0000)]
Adjust tun(4) and tap(4) after the split.
Note: "pseudo-device tun" is used by both devices this is not a typo
OK dlg@ mpi@
claudio [Fri, 23 Oct 2015 15:14:46 +0000 (15:14 +0000)]
Sync (after tap addition)
claudio [Fri, 23 Oct 2015 15:14:11 +0000 (15:14 +0000)]
MAKEDEV bits for tap(4)
OK dlg@ mpi@
claudio [Fri, 23 Oct 2015 15:10:52 +0000 (15:10 +0000)]
Allocate a new major for tap(4) also note that pseudo-device tun is for tap
as well. OK dlg@ mpi@
claudio [Fri, 23 Oct 2015 15:08:24 +0000 (15:08 +0000)]
Split up tun(4) into tun(4) & tap(4). Killing the link0 magic to switch
between modes. The two drivers still share most of the code but the mode
switcher is gone.
OK dlg@ mpi@
deraadt [Fri, 23 Oct 2015 15:03:25 +0000 (15:03 +0000)]
route has 3 code paths: monitor (listening on route socket); show
(sysctl and then print), change (getsocket, then read/write on that).
Refactor lightly and insert pledge "stdio rpath dns" in each case.
ok claudio benno phessler
phessler [Fri, 23 Oct 2015 14:52:20 +0000 (14:52 +0000)]
Allowing upstream servers of ntp being in multiple routing tables is
non-sensical. The dns lookups happened in the process routing table
(usually '0'), which is very likely to have different results from the
other routing domains. If you do depend on having this behaviour,
you'll need to use pf to cross the rtable boundary.
"listen on * rtable X" is still supported.
Users of "server * rtable X" will need to switch to launching ntpd with
"route -T X exec /usr/sbin/ntpd"
OK deraadt@
mpi [Fri, 23 Oct 2015 14:49:36 +0000 (14:49 +0000)]
rtfree(9) and rtalloc(9) no longer need to be called under KERNEL_LOCK.
schwarze [Fri, 23 Oct 2015 14:49:13 +0000 (14:49 +0000)]
apply bold and italic to all non-ASCII Unicode codepoints,
fixing input like \fB\('e; issue reported by bentley@
mpi [Fri, 23 Oct 2015 14:48:22 +0000 (14:48 +0000)]
Update route entries reference counters atomically.
This allows us to only grab the KERNEL_LOCK when the last reference
of an entry has been dropped.
For symmetry also grab the KERNEL_LOCK inside rtalloc(9).
ok dlg@, bluhm@
tedu [Fri, 23 Oct 2015 14:17:24 +0000 (14:17 +0000)]
don't need MMAP to compile now
tedu [Fri, 23 Oct 2015 14:16:02 +0000 (14:16 +0000)]
correct spelling of statistic in function name, from Pablo Hernandez
bluhm [Fri, 23 Oct 2015 14:06:55 +0000 (14:06 +0000)]
Check that syslogd delays a blocking write to tty and that that all
messages still appear on the tty.
bluhm [Fri, 23 Oct 2015 13:41:41 +0000 (13:41 +0000)]
It was possible to create a gateway route pointing to another gateway
route by changing the gateway. Despite the error message when doing
so, the route did actually change. The gateway is modified by
rt_setgate(), the error is created by rt_getifa(). Do these
operations the other way around.
OK mpi@
mpi [Fri, 23 Oct 2015 13:26:07 +0000 (13:26 +0000)]
``rt_ifp'' cannot be NULL.
ok claudio@
deraadt [Fri, 23 Oct 2015 13:21:10 +0000 (13:21 +0000)]
getnameinfo() no longer needs pledge "route". this drops to
pledge "stdio rpath".
claudio [Fri, 23 Oct 2015 13:09:19 +0000 (13:09 +0000)]
Switch if_nameindex(3) to use the new NET_RT_IFNAMES sysctl to get the
list of interface names. At the same time switch if_nametoindex(3) and
if_indextoname(3) to use if_nameindex(3) instead of getifaddrs(3).
if_nameindex(3) exposes much less then getifaddrs(3) and is allowed by
pledge(2).
With and OK deraadt@
claudio [Fri, 23 Oct 2015 12:59:12 +0000 (12:59 +0000)]
Add ifnameindex to te libc regress tests
deraadt [Fri, 23 Oct 2015 12:36:23 +0000 (12:36 +0000)]
delete ) that jumped in
benno [Fri, 23 Oct 2015 12:22:02 +0000 (12:22 +0000)]
let the icmp check use getsockopt IP_IPDEFTTL to get the default ttl
instead of using sysctl. makes it possible to pledge hce.
zhuk [Fri, 23 Oct 2015 11:43:16 +0000 (11:43 +0000)]
A bit of whitespace cleanup, to make further diffs smaller.
zhuk [Fri, 23 Oct 2015 11:01:30 +0000 (11:01 +0000)]
Fix BODUN handling after switch to UTF-8.
Still wondering if this functionality should be removed, but I'll leave
the decision to those who drink alcohol.
Input from & okay tedu@.
krw [Fri, 23 Oct 2015 10:45:31 +0000 (10:45 +0000)]
Nuke a bunch of leading/embedded/trailing whitespace so the code can be
read without generating spurious headaches.
tedu [Fri, 23 Oct 2015 10:33:52 +0000 (10:33 +0000)]
forgot to commit makefile change for utf-8 calendars
claudio [Fri, 23 Oct 2015 10:22:29 +0000 (10:22 +0000)]
Introduce a new sysctl NET_RT_IFNAMES that returns only ifnames to ifindex
mappings. This will be used by if_nameindex(3), if_nametoindex(3) and
if_indextoname(3) soon to fix the issues in pledge because of inet6 link
local addressing.
OK mpi@ benno@ deraadt@
The libc version will follow soon so better start updating your kernels
renato [Fri, 23 Oct 2015 10:11:20 +0000 (10:11 +0000)]
Make use of pledge(2).
ok deraadt@
renato [Fri, 23 Oct 2015 10:10:17 +0000 (10:10 +0000)]
Add pledge(2) to the child processes.
This is almost identical to the eigrpd(8) pledge diff, with the exception
that the parent process can not be pledged bacause of a SIOCSETMPWCFG
ioctl used to configure pseudowires.
Looks good to deraadt@.
kettenis [Fri, 23 Oct 2015 09:36:09 +0000 (09:36 +0000)]
Zap pv allocation abstraction layer.
ok mlarkin@
tedu [Fri, 23 Oct 2015 09:35:52 +0000 (09:35 +0000)]
i assume this file needs a LANG like all the rest
tedu [Fri, 23 Oct 2015 09:32:14 +0000 (09:32 +0000)]
translate calendar files to utf-8
tedu [Fri, 23 Oct 2015 09:13:00 +0000 (09:13 +0000)]
push LDSTATIC line down so it's not overridden by makefile.inc. ok reyk
kettenis [Fri, 23 Oct 2015 08:21:58 +0000 (08:21 +0000)]
Fix uvm_object reference counting. While these reference counts aren't reaaly
used (ttm bo's have their own reference counts), we can't let the reference
count go negative as this will freak out the upper uvm layers. Since the
uvm_object reference count is still a useful debugging tool (ddb will display
it for example), adjust it such that the uvm_object reference count represents
the number of references held by the uvm layer.
tested by matthieu@
ok jsg@
tedu [Fri, 23 Oct 2015 08:21:27 +0000 (08:21 +0000)]
simplify argv back compat
tedu [Fri, 23 Oct 2015 08:18:57 +0000 (08:18 +0000)]
further simplify argv
tedu [Fri, 23 Oct 2015 08:18:30 +0000 (08:18 +0000)]
cleanup argv handling a bit
tedu [Fri, 23 Oct 2015 08:03:48 +0000 (08:03 +0000)]
simplify backcompat. no more support for kernel or kmem on argv
tedu [Fri, 23 Oct 2015 08:02:13 +0000 (08:02 +0000)]
undent includes, from michael reed
tedu [Fri, 23 Oct 2015 07:57:03 +0000 (07:57 +0000)]
mmap is the default. it's effectively the only tested codepath. so burn down
the stdio code path.
pros: everything is simpler. how can anyone read code this heavily spliced
with ifdef?
cons: you can't pipe a database into locate. who does this???
ok deraadt
tedu [Fri, 23 Oct 2015 06:42:53 +0000 (06:42 +0000)]
add BUILDINFO file. currently contains a timestamp. ok deraadt
deraadt [Fri, 23 Oct 2015 06:22:28 +0000 (06:22 +0000)]
sync
mlarkin [Fri, 23 Oct 2015 05:35:49 +0000 (05:35 +0000)]
enable viornd on RAMDISK_CD
ok kettenis@, deraadt@
beck [Fri, 23 Oct 2015 05:27:17 +0000 (05:27 +0000)]
Initial pledge of netcat - unfortunately flawed because fiddling the rtableid
in a socket option can be pretty scary and there is no better interface for this.
so if the -V option is used you get no pledge at all.. Otherwise, do what
works for the various options. Still needs refinement for tls to drop rpath,
and a better solution for the routing table stuff
guenther [Fri, 23 Oct 2015 04:52:21 +0000 (04:52 +0000)]
Fix waitpid() loop again: do the errno check only if waitpid() returns -1
and check WIFEXITED() only if it returns != -1. Delete the logging of
errors other than ECHILD: EFAULT and EINVAL are impossible here.
ok deraadt@ millert@
guenther [Fri, 23 Oct 2015 04:45:32 +0000 (04:45 +0000)]
Use waitpid() instead of wait() to avoid returning early from another child
exiting, and loop the waitpid() on EINTR
ok deraadt@ millert@
guenther [Fri, 23 Oct 2015 04:44:41 +0000 (04:44 +0000)]
Loop the waitpid() on EINTR, and save and restore the disposition of
SIGINT and SIGQUIT with sigaction() instead of signal() so that all bits
are preserved.
ok deraadt@ millert@
guenther [Fri, 23 Oct 2015 04:39:24 +0000 (04:39 +0000)]
Merge the sigaction() and sigprocmask() overloads/wrappers from libpthread
into libc, and move pthread_sigmask() as well (just a trivial wrapper).
This provides consistent handling of SIGTHR between single- and multi-threaded
programs and is a step in the merge of all the libpthread overloads, providing
some ASM and Makefile bits that the other wrappers will need.
ok deraadt@ millert@
deraadt [Fri, 23 Oct 2015 03:44:59 +0000 (03:44 +0000)]
pledge "stdio rpath getpw proc exec id" at start, much like doas.
2 further pledges are possible, not as many as doas can do, because the
order of some su operations is a bit different. also it is trying
harder to please non-root nfs mounts?
deraadt [Fri, 23 Oct 2015 03:26:24 +0000 (03:26 +0000)]
With new pledge "ps" and "vminfo" requests, ps/top/w become possible.
dlg [Fri, 23 Oct 2015 03:16:19 +0000 (03:16 +0000)]
there's an extra argument to soreceive now.
found by teary students.
dlg [Fri, 23 Oct 2015 02:29:24 +0000 (02:29 +0000)]
pass the right sizes to free.
dtucker [Fri, 23 Oct 2015 02:22:01 +0000 (02:22 +0000)]
Update expected group sizes to match recent code changes.
dlg [Fri, 23 Oct 2015 02:08:37 +0000 (02:08 +0000)]
inline the hfsc_active TAILQ.
make cl_actc in hfsc_class a TAILQ rather than a pointer to a TAILQ
that gets allocated seaprately.
jsg [Fri, 23 Oct 2015 02:01:15 +0000 (02:01 +0000)]
include err.h for err() calls added with recent pledge commits.
dlg [Fri, 23 Oct 2015 01:53:02 +0000 (01:53 +0000)]
inline the hif_eligible TAILQ.
make hif_eligible in hfsc_if a TAILQ rather than a pointer to a
TAILQ that gets allocated separately.
"look ma, i saved 4 or 8 bytes"
mmcc [Fri, 23 Oct 2015 01:33:36 +0000 (01:33 +0000)]
Remove two comments listing functionless files. Trivial, no functional
change.
dlg [Fri, 23 Oct 2015 01:32:10 +0000 (01:32 +0000)]
counting packets in hif_packets in hfsc_if is redundant.
the ifqueue struct has the same information, and hif_packets is never
read separately. trim it.
dlg [Fri, 23 Oct 2015 01:19:04 +0000 (01:19 +0000)]
tweak the vnetid so it can be optional and therefore cleared/deleted.
the abstract vnetid is promoted to a uin32_t, and adds a SIOCDVNETID
ioctl so it can be cleared.
this is all because i set an assignment on implementing a virtual
network interface and the students got confused when vnetid 0 didnt
show up in ifconfig output.
the vnetid in the vxlan(4) protocol is optional, but the current
code confuses 0 with no vnetid being set. this makes it clear.
ok reyk@ who also simplified my diff
mmcc [Fri, 23 Oct 2015 01:14:07 +0000 (01:14 +0000)]
proto.h contains many function prototypes. It's apparently separate from
sh.h because the pdksh devs used a prototype generator (last run in
1992). Merging it into sh.h makes things clearer.
ok nicm@
deraadt [Fri, 23 Oct 2015 01:10:01 +0000 (01:10 +0000)]
Add 3 new pledge requests. "ps" exposes enough sysctl information for
ps-style programs (there are quite a few in the tree, including tmux).
"vminfo" exposes a bit more system operation information, which many
observation programs want (such as top). settime allows setting the system
time, and will be used to pledge-protect the last ntpd process.
dlg [Fri, 23 Oct 2015 01:02:46 +0000 (01:02 +0000)]
remove the pointer from hfsc_class structs back to hfsc_if.
you get to hfsc_class via a hfsc_if, so just pass the hfsc_if around
on the stack when we need it rather than following the pointer back.
most of this change is passing the hif on the stack.
ok mpi@ henning@
deraadt [Fri, 23 Oct 2015 01:00:16 +0000 (01:00 +0000)]
correct precedence; from Ilya Kaliman
deraadt [Fri, 23 Oct 2015 00:56:52 +0000 (00:56 +0000)]
Allow hw.ncpu sysctl (a few reasons showed up in my mailbox rapidly..)
deraadt [Fri, 23 Oct 2015 00:53:13 +0000 (00:53 +0000)]
crank libc major
deraadt [Fri, 23 Oct 2015 00:52:49 +0000 (00:52 +0000)]
Remove dnssocket() and dnsconnect(), since we decided to use a SOCK_DNS
flag instead.
ok guenther tedu semarie
deraadt [Fri, 23 Oct 2015 00:52:09 +0000 (00:52 +0000)]
Switch to using SOCK_DNS flag, rather than the dnssocket() and
dnssonnect() calls. Be a bit careful crossing over this, need a kernel
no older than Monday.
ok guenther tedu semarie
jsg [Fri, 23 Oct 2015 00:15:07 +0000 (00:15 +0000)]
replace pointer arithmetic and casts with offsetof
ok mpi@ bluhm@
jsg [Fri, 23 Oct 2015 00:08:57 +0000 (00:08 +0000)]
replace pointer arithmetic and casts with offsetof
ok dlg@ krw@
bmercer [Thu, 22 Oct 2015 23:56:30 +0000 (23:56 +0000)]
Add pledge support to login_yubikey. Much feedback and OK millert@
mmcc [Thu, 22 Oct 2015 23:55:51 +0000 (23:55 +0000)]
Cast ctype function arguments to unsigned char.
ok guenther@
renato [Thu, 22 Oct 2015 23:17:45 +0000 (23:17 +0000)]
Fix some bugs in the handling of the RTM_GET and RTM_CHANGE messages
found when running eigrpd(8) and ldpd(8) together.
benno [Thu, 22 Oct 2015 22:21:41 +0000 (22:21 +0000)]
document tid keyword.
found with and ok bluhm@
schwarze [Thu, 22 Oct 2015 22:05:42 +0000 (22:05 +0000)]
use the new function man_validate() here, too
schwarze [Thu, 22 Oct 2015 21:53:49 +0000 (21:53 +0000)]
move man(7) validation into the dedicated validation phase, too
schwarze [Thu, 22 Oct 2015 21:02:55 +0000 (21:02 +0000)]
If no output device was allocated because no file wanted to produce output,
refrain from dereferencing a NULL pointer during final deallocation.
Fixing a recent regression reported by czarkoff@
miod [Thu, 22 Oct 2015 18:54:41 +0000 (18:54 +0000)]
Build boot blocks with -msmall-data -msmall-text.
mpi [Thu, 22 Oct 2015 18:14:53 +0000 (18:14 +0000)]
Drop historical comment and an old '#if notyet'.
mpi [Thu, 22 Oct 2015 17:48:34 +0000 (17:48 +0000)]
Kill link_rtrequest(), introduce in 1990 to "fix" the result
of rt_getifa() when adding link level route from outside the
kernel.
ok claudio@
mpi [Thu, 22 Oct 2015 17:19:38 +0000 (17:19 +0000)]
Use only one refcounting mechanism for route entries.
ok bluhm@, dlg@, claudio@
mpi [Thu, 22 Oct 2015 16:49:26 +0000 (16:49 +0000)]
Only check for rt_ifp now that it is alays the same as rt_ifa->ifa_ifp.
ok millert@, bluhm@
mpi [Thu, 22 Oct 2015 16:44:54 +0000 (16:44 +0000)]
Make sure that the address matching the key (destination) of a route
entry is attached to this entry.
ok phessler@, bluhm@
mpi [Thu, 22 Oct 2015 16:33:32 +0000 (16:33 +0000)]
Use rt_ifp instead of rt_ifa->ifa_ifp.
ok bluhm@
mpi [Thu, 22 Oct 2015 16:32:41 +0000 (16:32 +0000)]
Kill dead code, ifa is specified and won't change.
ok bluhm@
reyk [Thu, 22 Oct 2015 15:55:18 +0000 (15:55 +0000)]
iked hereby pledges that it will run with restricted system
operations. This adds pledge(2) too all processes, including the iked
parent process; the existing privsep design has been improved for
better pledgeability. There haven't been any serious problems as it
was already sane (eg. by receiving the PFKEYv2 and UDP sockets via fd
passing). The control socket moved to an independent process to
remove some abilities from the cert process.
Committed in agreement with many but nobody was brave enough to OK it.
Better testing will happen with having it in the tree.
"It's the truth" deraadt@
"Let's see what happens" benno@
claudio [Thu, 22 Oct 2015 15:47:00 +0000 (15:47 +0000)]
Add a regress test for if_indextoname() and if_nametoindex()
jsing [Thu, 22 Oct 2015 15:38:05 +0000 (15:38 +0000)]
Another change that is needed to restore the previous behaviour of
ASN1_{GENERALIZED,UTC}TIME_set_string(), which allows it to be called
with a NULL pointer.
ok beck@
bluhm [Thu, 22 Oct 2015 15:37:47 +0000 (15:37 +0000)]
Inspired by satosin(), use inline functions to convert sockaddr dl.
Instead of casts they check wether the incoming object has the
expected type. So introduce satosdl() and sdltosa() in the kernel.
OK mpi@
mmcc [Thu, 22 Oct 2015 15:37:04 +0000 (15:37 +0000)]
Final removal of EXTERN.
ok nicm@
reyk [Thu, 22 Oct 2015 15:14:27 +0000 (15:14 +0000)]
Stop linking iked -static: It was inherited from isakmpd that is
-static for NFS-over-IPsec that might mount the libraries after /usr.
The benefit of linking iked dynamic outweighs the historic reason, eg.
to get full address space randomization and to benefit from libcrypto
updates, so we turn it into a dynamic binary.
OK deraadt@ naddy@
jsing [Thu, 22 Oct 2015 15:03:19 +0000 (15:03 +0000)]
Restore previous behaviour and allow
ASN1_{GENERALIZED,UTC,}TIME_set_string() to be called with a NULL pointer.
Found the hard way by @kinichiro on github.
ok beck@
pascal [Thu, 22 Oct 2015 14:53:00 +0000 (14:53 +0000)]
Add pledge(2) to some binutils that handle untrusted data. Most can do with
"stdio rpath", while objdump(1) also needs "tmppath" for objdump -i.
ok deraadt@, comments sthen@ kettenis@
jsing [Thu, 22 Oct 2015 14:10:55 +0000 (14:10 +0000)]
Extend tests to call ASN1_{GENERALIZED,UTC,}TIME_set_string() with a NULL
pointer - because, you know, you might want to set a string on a NULL
object. The previous implementation apparently allowed this as a way of
testing if the string was valid... probably because the *_check() functions
are only useable after the string has already been set.
jsing [Thu, 22 Oct 2015 14:01:19 +0000 (14:01 +0000)]
Fix case where we wanted to test ASN1_TIME_set_string() but were testing
ASN1_UTCTIME_set_string() twice instead.