benno [Thu, 22 Jun 2017 20:44:36 +0000 (20:44 +0000)]
Do not interpret an empty path as current working directory "." when
parsing LD_LIBRARY_PATH, and in DT_RPATH and DT_RUNPATH attributes and
in ld.so.hints.
ok deraadt@
fcambus [Thu, 22 Jun 2017 20:38:32 +0000 (20:38 +0000)]
Close file descriptor on an exit path.
OK gsoares@
bluhm [Thu, 22 Jun 2017 20:17:22 +0000 (20:17 +0000)]
Perl on 32 bit architectures does not support pack('Q'), replace
it with 'NN'.
bluhm [Thu, 22 Jun 2017 20:06:14 +0000 (20:06 +0000)]
Get the framework from relayd regress to start switchd on demand.
This allows to run the test without manual setup.
bluhm [Thu, 22 Jun 2017 18:07:30 +0000 (18:07 +0000)]
Do not skip any crypto tests. Remove useless make code, use defaults
where appropriate.
OK mikeb@
anton [Thu, 22 Jun 2017 18:05:31 +0000 (18:05 +0000)]
Make sure to abort loops when pressing ^C in csh.
Regression found by deraadt@
jsing [Thu, 22 Jun 2017 18:03:57 +0000 (18:03 +0000)]
Use the tls_password_cb() callback with all PEM_read_bio_*() calls, so that
we can prevent libcrypto from going behind our back and trying to read
passwords from standard input (which we may not be permitted to do).
Found by jsg@ with httpd and password protected keys.
jsing [Thu, 22 Jun 2017 17:58:54 +0000 (17:58 +0000)]
Fix incorrect indentation.
jsing [Thu, 22 Jun 2017 17:55:48 +0000 (17:55 +0000)]
Plug a memory leak in tls_keypair_cert_hash(), introduced in r1.60.
mikeb [Thu, 22 Jun 2017 17:48:42 +0000 (17:48 +0000)]
Pick rijndael.c lost after backout; requested by bluhm@
jsing [Thu, 22 Jun 2017 17:47:56 +0000 (17:47 +0000)]
Remove dead code that has remained hiding since ressl.c r1.14!
jsing [Thu, 22 Jun 2017 17:34:25 +0000 (17:34 +0000)]
Use the standard `rv' idiom in tls_keypair_load_cert(), rather than
duplicating clean up code.
jsing [Thu, 22 Jun 2017 17:28:00 +0000 (17:28 +0000)]
Distinguish between self-issued certificates and self-signed certificates.
The certificate verification code has special cases for self-signed
certificates and without this change, self-issued certificates (which it
seems are common place with openvpn/easyrsa) were also being included in
this category.
Based on BoringSSL.
Thanks to Dale Ghent <daleg at elemental dot org> for assisting in
identifying the issue and testing this fix.
ok inoguchi@
espie [Thu, 22 Jun 2017 17:09:10 +0000 (17:09 +0000)]
zap trailing spaces from the previous commits and also other trailing
spaces
espie [Thu, 22 Jun 2017 17:08:20 +0000 (17:08 +0000)]
better display of cycles in -j mode.
lots of tests by krw@
review and comments by pirofti@, more tweaks to come
bluhm [Thu, 22 Jun 2017 16:10:34 +0000 (16:10 +0000)]
Convert shell script tests to regress make rules. Having only one
tool and more verbosity allows better debugging. Additional tests
check that gzip and gunzip preserve file permissions and ownership.
deraadt [Thu, 22 Jun 2017 16:03:36 +0000 (16:03 +0000)]
Adjust relink procedure to use new targets. Better use semantics for
users and developers.
diff from rpe, ok tb
deraadt [Thu, 22 Jun 2017 16:02:42 +0000 (16:02 +0000)]
compile.tgz no longer needs to contain machine/ subdir, instead it needs
makegap.sh
ok tb
deraadt [Thu, 22 Jun 2017 16:01:45 +0000 (16:01 +0000)]
Generate a gap.link script, and use that to generate gap.o. On multi-ABI
architectures we must also link against a gapdummy.o to repair the ABI
of the resulting .o file. Woe is me.
Also repair install: target to update the linkkit & hash when a kernel
is installed.
ok rpe tb mlarkin and tested by others also
deraadt [Thu, 22 Jun 2017 15:57:16 +0000 (15:57 +0000)]
Generate the newbsd: and install-update: targets here, rather than
in the source Makefile.* files.
ok tb rpe mlarkin
deraadt [Thu, 22 Jun 2017 15:56:29 +0000 (15:56 +0000)]
calculate a "sum" based upon pointers to functions all over the kernel,
so that an unhibernate kernel can detect if it is running with the
kernel it booted.
ok mlarkin
krw [Thu, 22 Jun 2017 15:08:53 +0000 (15:08 +0000)]
Drop support for old (>4yr) timestamp formats in leases
files.
ok tb@ millert@
visa [Thu, 22 Jun 2017 14:40:20 +0000 (14:40 +0000)]
Improve the coalescing of instruction cache flushes on R8000 in order
not to perform redundant work. There is no direct way to flush the
cache; rather, the kernel evicts unwanted bits from the cache by
executing a block of instructions, which is expensive.
With this diff, make build time decreases about 0.4%.
Diff from miod@
jmc [Thu, 22 Jun 2017 13:51:49 +0000 (13:51 +0000)]
typo; from jack burton
tom [Thu, 22 Jun 2017 13:21:10 +0000 (13:21 +0000)]
Tidy up comment about double load opcodes in m88k/eh_common.S (and fix ;; -> ||)
ok miod@
tom [Thu, 22 Jun 2017 11:34:51 +0000 (11:34 +0000)]
Fix the remaining ';;'s in sys/
jmatthew [Thu, 22 Jun 2017 06:21:12 +0000 (06:21 +0000)]
Add a hypervisor-specific function pointer in pvbus(4) that gets called during
cpu_hatch() on each cpu, allowing initialization of per-cpu features on each
cpu as it starts up.
input from reyk@ and mikeb@
ok mikeb@
tom [Thu, 22 Jun 2017 05:32:47 +0000 (05:32 +0000)]
Fix another ;; in sys/dev
deraadt [Thu, 22 Jun 2017 02:44:37 +0000 (02:44 +0000)]
double ;;. xhci one found by geoffhill
dlg [Thu, 22 Jun 2017 02:30:34 +0000 (02:30 +0000)]
items get returns to pools with pool_put, not pool_get.
deraadt [Thu, 22 Jun 2017 01:26:28 +0000 (01:26 +0000)]
Only print the magic '&' letter on a disk if the hibernate partition is
valid. This is an undocumented little debugging diagnostic, much like
the '*'.
schwarze [Thu, 22 Jun 2017 00:30:06 +0000 (00:30 +0000)]
Fix font selection for text boxes in the terminal formatter.
Issue reported by bentley@.
The AST data structure is powerful enough that all required
information can easily be provided in the parser, and no change
of the formatting code is needed.
deraadt [Wed, 21 Jun 2017 23:54:19 +0000 (23:54 +0000)]
/var/db/kernel.SHA256 contains the hash of the /bsd kernel. Upon
install or upgrade, set it correctly.
diff from rpe, also thanks tb for comments and review
deraadt [Wed, 21 Jun 2017 23:52:55 +0000 (23:52 +0000)]
When building a snapshot, install the compile.tgz file to builder's
/usr/share/ so that next boot will find it and perhaps use it.
ok tb rpe
deraadt [Wed, 21 Jun 2017 23:21:35 +0000 (23:21 +0000)]
Better off padding with 0x0. 0x0 = "break 0,0".
(BTW, the binutils disasm cannot handle that instruction with those
parameters, because the decoder logic is wrong..)
schwarze [Wed, 21 Jun 2017 20:47:46 +0000 (20:47 +0000)]
Outside explicit font context, give every letter its own box.
The formatters need this to correctly select fonts.
Missing feature reported by bentley@.
deraadt [Wed, 21 Jun 2017 20:31:46 +0000 (20:31 +0000)]
elf64_x86_64_plt0_entry had a hardcoded nop-sled, before the subsequent
plt entry. Since previous effective instruction is a a jmp, this can be
a sequence of traps.
ok mlarkin
deraadt [Wed, 21 Jun 2017 20:29:39 +0000 (20:29 +0000)]
Intra-segment traps instead of nops. Similar to kernel change, further
reduction in nopsleds in code and data segments (if those data segments
ever become X, that is)
ok mlarkin
deraadt [Wed, 21 Jun 2017 20:08:53 +0000 (20:08 +0000)]
Fill space between sections with traps, rather than nops.
anton [Wed, 21 Jun 2017 19:36:23 +0000 (19:36 +0000)]
Minor style(9) corrections and whitespace cleanup to csh.
ok deraadt@ tb@
deraadt [Wed, 21 Jun 2017 19:23:12 +0000 (19:23 +0000)]
Large nopsleds make it easier for ROP machinery to sloppily reach targets.
Convert these to "trapsleds' instead. Since these can occur inside
fall-through blocks of code (and gcc sure isn't helping us by identifying
those), convert most to "short jump over" followed a sequence of int3.
This works for sled sizes 3-15, for i386 and amd64. Work by Todd Mortimer
ok mlarkin
anton [Wed, 21 Jun 2017 19:03:30 +0000 (19:03 +0000)]
Add regression tests for the filec feature in csh.
anton [Wed, 21 Jun 2017 18:55:15 +0000 (18:55 +0000)]
Replace usage of TIOCSTI in csh using a more common IO-loop where ICANON is
disabled and a single char of input is read at a time. This requires the line
editing capabilities provided when ICANON is enabled to be implemented.
With help and feedback from deraadt@
schwarze [Wed, 21 Jun 2017 18:37:38 +0000 (18:37 +0000)]
quoted words are not parsed for defined keys
mikeb [Wed, 21 Jun 2017 18:18:08 +0000 (18:18 +0000)]
Don't confuse SCSI command status and transfer error code.
While here, make SCSI command completion routine more robust.
schwarze [Wed, 21 Jun 2017 18:03:50 +0000 (18:03 +0000)]
Recognize well-known functions names (the same that Heirloom recognizes,
which includes those recognized by groff) and wrap them in a roman box
unless they already are in roman context.
Missing feature reported by bentley@.
deraadt [Wed, 21 Jun 2017 17:13:20 +0000 (17:13 +0000)]
Permit TIOCSTAT on a tty.
tedu [Wed, 21 Jun 2017 16:51:07 +0000 (16:51 +0000)]
For a decade or more, we've patched gcc to make -fno-ident the default.
clang doesn't seem to have a command line option for the feature,
so just hard wire it off. We don't need advertisements in our binaries.
ok deraadt
krw [Wed, 21 Jun 2017 16:39:05 +0000 (16:39 +0000)]
Teach get_recorded_lease() that static leases do not
expire.
mikeb [Wed, 21 Jun 2017 16:37:48 +0000 (16:37 +0000)]
Return early from NVS command submission if no response is required
krw [Wed, 21 Jun 2017 15:49:27 +0000 (15:49 +0000)]
No need to manually check validity of ifi->active when
REBOOT'ing. It will be pointing to a recorded lease if
anything. So rely on get_recorded_lease() to return the
next valid candidate lease, which might be the lease
ifi->active was pointing at.
bluhm [Wed, 21 Jun 2017 15:29:23 +0000 (15:29 +0000)]
Fix kernel diagnostic assertion "(sk->inp == NULL) || (sk->inp->inp_pf_sk
== NULL)". The problem was that setting the inp pointer in the
statekey to NULL was delayed until the statekey refcounter reached
0. So the inp could get linked to another statekey while an mbuf
in the socket buffer was keeping the refcounter at 1. Set the
statekey inp pointer to NULL in pf_state_key_detach() immediately,
then the kassert can be even stricter.
OK sashan@
krw [Wed, 21 Jun 2017 15:24:34 +0000 (15:24 +0000)]
Consistently use time(&var) idiom rather than tossing in a few
var = time(NULL). Flip "struct interface *" to be the first
parameter in set_timeout(), as in other functions taking the
state info.
krw [Wed, 21 Jun 2017 12:37:24 +0000 (12:37 +0000)]
Allow familiar idiom free_client_lease(NULL).
mikeb [Wed, 21 Jun 2017 11:35:11 +0000 (11:35 +0000)]
Include the request id in the I/O debug output
akfaew [Wed, 21 Jun 2017 08:21:14 +0000 (08:21 +0000)]
List all five devices, not just the first two.
OK jmc@ sf@
deraadt [Wed, 21 Jun 2017 06:24:28 +0000 (06:24 +0000)]
sync
espie [Wed, 21 Jun 2017 00:11:36 +0000 (00:11 +0000)]
error out if an exists condition tests an empty path, because that makes
zero sense.
this would have caught DEPENDSFILE in gnu/cc/cc_tools
okay guenther@, also tested by krw@
espie [Wed, 21 Jun 2017 00:10:23 +0000 (00:10 +0000)]
DEPENDSFILE comes from FreeBSD, we don't have it. replace it with its
value .depend, so that the conditional is really used.
okay guenther@
deraadt [Tue, 20 Jun 2017 21:05:46 +0000 (21:05 +0000)]
use [] instead of * for reaching regions to unmap, making this more
similar to smashing versions written by visa
akfaew [Tue, 20 Jun 2017 20:40:54 +0000 (20:40 +0000)]
Fix a path in Makequest and remove hack.sh (it never worked).
OK tb@
akfaew [Tue, 20 Jun 2017 20:24:07 +0000 (20:24 +0000)]
Remove locate.concatdb, it never worked.
OK millert@
ajacoutot [Tue, 20 Jun 2017 18:32:26 +0000 (18:32 +0000)]
Set SRCDIR according to build type and s/X11SRC/XSRCDIR
ok robert@
espie [Tue, 20 Jun 2017 18:05:44 +0000 (18:05 +0000)]
trim more error messages
- if we can't retrieve the package, of course signify will say it's truncated
so that's redundant.
- if you give a full package name, can_be_empty should make directories
vanish.
(landry just discovered 6.1/packages-stable by accident, make it vanish
again so he can't find it back... :D )
tj [Tue, 20 Jun 2017 18:02:26 +0000 (18:02 +0000)]
doas won't be configured after the first boot, so stop recommending
use of it to change root's password. remove a leftover sentence and
apply minor grammar tweaks while here.
ok deraadt
brynet [Tue, 20 Jun 2017 17:32:20 +0000 (17:32 +0000)]
'^T' is documented to be bounded to transpose-chars while in emacs
mode, not "stuff". While here, remove the poorly described "stuff"
and "stuff" bind functions as well..
In the unlikely event anyone has those in .kshrc, they'll need to
be removed.
ok anton@
schwarze [Tue, 20 Jun 2017 17:24:09 +0000 (17:24 +0000)]
KNF: remove parentheses from switch case labels; no binary change
bluhm [Tue, 20 Jun 2017 17:13:21 +0000 (17:13 +0000)]
In ddb print socket bit field so_state in hex to match SS_ defines.
anton [Tue, 20 Jun 2017 16:46:51 +0000 (16:46 +0000)]
Fix EOL tests for ksh vi mode.
anton [Tue, 20 Jun 2017 16:44:06 +0000 (16:44 +0000)]
Don't try to close every single file descriptor up to _SC_OPEN_MAX in csh.
Instead, close the fds that reside in between the gaps of used fds and once the
largest used fd is reached call closefrom().
ok deraadt@
visa [Tue, 20 Jun 2017 15:49:00 +0000 (15:49 +0000)]
Check the validity of the `qtd' pointer after each interrupt case
and bail out if the pointer has become invalid. This prevents
use-after-free memory accesses that corrupted the dwc2qtd pool.
This fix improves stability on the Raspberry Pi 3.
From Linux commit
dc8730846948e517169f630826cd2c97615f5ee8
OK kettenis@
gerhard [Tue, 20 Jun 2017 14:11:46 +0000 (14:11 +0000)]
Do not touch file pointers for which FILE_IS_USABLE() is false.
They're might not be fully constructed.
ok mpi@ deraadt@ bluhm@
stsp [Tue, 20 Jun 2017 13:52:40 +0000 (13:52 +0000)]
Remove the IWM_FLAG_HW_INITED flag from iwm(4). This flag was redundant.
The IFF_RUNNING flag in struct ifnet serves the same purpose.
ok mpi@ kettenis@ deraadt@
stsp [Tue, 20 Jun 2017 13:51:46 +0000 (13:51 +0000)]
Initialize the link state of a wireless interface to DOWN when the
interface is attached to the net80211 layer. Prevents confusion
in cases where drivers forget to initialize the link state.
ok mpi@ kettenis@
tom [Tue, 20 Jun 2017 12:39:20 +0000 (12:39 +0000)]
Fix a couple of comment typos in amd64 and i386 biosvar.h
bluhm [Tue, 20 Jun 2017 11:12:13 +0000 (11:12 +0000)]
Do not use the interface pointer after if_put(). Rename ipip_input_gif()
to ipip_input_if() and always pass the ifp. Only dump the packet
to bpf if we are called with a gif(4) interface.
OK mpi@
mpi [Tue, 20 Jun 2017 09:10:04 +0000 (09:10 +0000)]
Convert sodidle() to timeout_set_proc(9), it needs a process context
to grab the rwlock.
Problem reported by Rivo Nurges.
ok bluhm@
mpi [Tue, 20 Jun 2017 09:03:39 +0000 (09:03 +0000)]
Remove KERNEL_LOCK() asserts.
pf table code iterates on a radix tree and currently relies on the
NET_LOCK() to do the serialization.
Found the hardway by jasper@
bentley [Tue, 20 Jun 2017 07:32:56 +0000 (07:32 +0000)]
Better document the :s ex command and its variants.
ok jmc@
jsg [Tue, 20 Jun 2017 06:37:30 +0000 (06:37 +0000)]
sync
mlarkin [Tue, 20 Jun 2017 06:25:01 +0000 (06:25 +0000)]
remove some magic numbers in the flush-by-asid code and check if the CPU
supports that feature before we try to use it.
discussed with deraadt
mlarkin [Tue, 20 Jun 2017 05:34:41 +0000 (05:34 +0000)]
SVM: better cleanbits handling. Fixes an issue on Bulldozer CPUs causing
#TF exceptions during guest VM boot
ok brynet
jmatthew [Tue, 20 Jun 2017 04:37:17 +0000 (04:37 +0000)]
fix some nits
ok dlg@
mlarkin [Tue, 20 Jun 2017 01:59:12 +0000 (01:59 +0000)]
Revert a previous commit that increased the virtio queue size since it
appears to be causing some instability.
dlg [Mon, 19 Jun 2017 23:57:12 +0000 (23:57 +0000)]
dynamically scale the size of the per cpu cache lists.
if the lock around the global depot of extra cache lists is contented
a lot in between the gc task runs, consider growing the number of
entries a free list can hold.
the size of the list is bounded by the number of pool items the
current set of pages can represent to avoid having cpus starve each
other. im not sure this semantic is right (or the least worst) but
we're putting it in now to see what happens.
this also means reality matches the documentation i just committed
in pool_cache_init.9.
tested by hrvoje popovski and amit kulkarni
ok visa@
dlg [Mon, 19 Jun 2017 23:48:49 +0000 (23:48 +0000)]
s/a active/an active/
dlg [Mon, 19 Jun 2017 23:45:42 +0000 (23:45 +0000)]
s/pool_set_hardlimit/pool_sethardlimit/
from schwarze@
dlg [Mon, 19 Jun 2017 23:45:13 +0000 (23:45 +0000)]
s/can be from process context/can be called from process context/
from schwarze@
dlg [Mon, 19 Jun 2017 23:44:11 +0000 (23:44 +0000)]
talk about the per cpu caches in pools by documenting pool_cache_init()
this describes what the per cpu caches do, and has some bonus doco about
what the sysctls provide thanks to a suggestion from mikeb@
some tweaks are coming, but this is mostly right.
ok jmc@ schwarze@
deraadt [Mon, 19 Jun 2017 22:50:50 +0000 (22:50 +0000)]
As early as possible, create a link /bsd.booted to the /bsd kernel we
presume we booted from. If you boot from another kernel, we cannot help
you later with hibernate, sorry -- The kernel does not get a useable
filename from the bootblocks.
In the bootblocks, detect a live hibernate signature and boot from
/bsd.booted instead.
with yasuoka, lots of discussion with mlarkin, ok tom
friehm [Mon, 19 Jun 2017 19:55:57 +0000 (19:55 +0000)]
Import route priority support from ospfd to ospf6d.
Also remove the RTF_UP flag from hdr.rtm_flags in send_rtmsg() since
ospfd and bgpd don't set the flag.
OK bluhm@ claudio@
krw [Mon, 19 Jun 2017 19:28:35 +0000 (19:28 +0000)]
Various KNF nits.
jmc [Mon, 19 Jun 2017 18:36:13 +0000 (18:36 +0000)]
missing letter in previous;
bluhm [Mon, 19 Jun 2017 18:35:05 +0000 (18:35 +0000)]
Terminate pledge log(9) with newline. This fixes dmesg(8) output.
found by regress/sys/kern/pledge/generic; OK deraadt@
bluhm [Mon, 19 Jun 2017 17:58:49 +0000 (17:58 +0000)]
When dealing with mbuf pointers passed down as function parameters,
bugs could easily result in use-after-free or double free. Introduce
m_freemp() which automatically resets the pointer before freeing
it. So we have less dangling pointers in the kernel.
OK krw@ mpi@ claudio@
deraadt [Mon, 19 Jun 2017 17:35:04 +0000 (17:35 +0000)]
delete accidental blank line
bluhm [Mon, 19 Jun 2017 17:00:16 +0000 (17:00 +0000)]
The IP multicast forward functions return an errno, call the variable
error. Make the ip_mforward() return value consistent. Simplify
the caller logic in ipv6_input() like in IPv4.
OK mpi@
visa [Mon, 19 Jun 2017 14:47:27 +0000 (14:47 +0000)]
Fix the timecounter register on CN72xx/CN73xx.
visa [Mon, 19 Jun 2017 14:25:53 +0000 (14:25 +0000)]
Use octeon_model_family() for SoC identification as in the rest
of the code.
visa [Mon, 19 Jun 2017 13:54:55 +0000 (13:54 +0000)]
Use type register_t instead of __register_t. Drop unneeded __unused.