deraadt [Tue, 23 Dec 2014 17:16:00 +0000 (17:16 +0000)]
/bin and /sbin are moving towards static PIE, so on many architectures
the PIC .o files are unsuitable for static "instbin". This adds more
work at build time, but the result will be optimized for size.
kettenis [Tue, 23 Dec 2014 16:45:04 +0000 (16:45 +0000)]
Make sure the GOT and PLT are not writable.
Note that ommitting PROT_EXEC for the PLT is deliberate; static PIE
binaries should never actually hit the PLT.
We're still debating what to do when mprotect(2) fails. But that is no
excuse not to at least attempt to fix things up.
ok deraadt@
deraadt [Tue, 23 Dec 2014 16:35:53 +0000 (16:35 +0000)]
Small changes to buil
deraadt [Tue, 23 Dec 2014 16:27:18 +0000 (16:27 +0000)]
do not expose "ra" to cpp because it muddles up the .c code above.
instead handle it internally as $ra
solution from kettenis, ok guenther
espie [Tue, 23 Dec 2014 14:05:16 +0000 (14:05 +0000)]
missing test-depends thingy.
explicitly document that some lists are sorted
schwarze [Tue, 23 Dec 2014 13:48:15 +0000 (13:48 +0000)]
support negative horizontal widths in man(7);
minus twenty lines of code in spite of enhanced functionality
reyk [Tue, 23 Dec 2014 13:18:23 +0000 (13:18 +0000)]
pf now supports source-hash and random with tables so we can allow it
in redirections. Thanks for help and input from jsg and yasuoka who
reminded me to dig out and update these old diffs for pf and relayd.
ok jsg@
kettenis [Tue, 23 Dec 2014 12:25:43 +0000 (12:25 +0000)]
Set up the linkage table register (%r19) before calling _dl_boot_bind.
aoyama [Tue, 23 Dec 2014 10:59:29 +0000 (10:59 +0000)]
We do not need to grab the kernel lock for clock interrupts on luna88k,
as same as aviion.
suggested and ok miod@
shadchin [Tue, 23 Dec 2014 10:24:22 +0000 (10:24 +0000)]
Remove function mouse_map. This function is redundant.
ok zhuk@
schwarze [Tue, 23 Dec 2014 10:09:23 +0000 (10:09 +0000)]
fix typo in previous
ajacoutot [Tue, 23 Dec 2014 10:07:44 +0000 (10:07 +0000)]
Consistency: put variables between curly braces.
No functional change intended.
schwarze [Tue, 23 Dec 2014 09:31:17 +0000 (09:31 +0000)]
some scaling unit fixes:
- .sp with an invalid argument is .sp 1v, not .sp 0v
- in man(1), trailing garbage doesn't make scaling units invalid
espie [Tue, 23 Dec 2014 08:46:31 +0000 (08:46 +0000)]
tweak meta-info checking a bit.
- remove IsLink tests, there's no reason to treat them specially.
- files are forced to root, no need to allow for bin anymore.
- force libraries to be not executable, if there's no explicit @mode
annotation
schwarze [Tue, 23 Dec 2014 08:15:37 +0000 (08:15 +0000)]
even if the second argument to .IP is invalid, don't print it
tedu [Tue, 23 Dec 2014 07:54:13 +0000 (07:54 +0000)]
to be safe, revert locking change until further tested.
tedu [Tue, 23 Dec 2014 07:42:46 +0000 (07:42 +0000)]
change pmap pools from nointr to waitok. pvpool left alone for now.
schwarze [Tue, 23 Dec 2014 06:16:21 +0000 (06:16 +0000)]
Fix vertical scaling. Obviously, nobody ever had a serious look at this.
Basic units, centimeters, points, ens, ems, and the rounding algorithm
were all wrong, only inches, pica, and the default vertical span worked.
tedu [Tue, 23 Dec 2014 04:56:47 +0000 (04:56 +0000)]
convert pool_init nointr to waitok
tedu [Tue, 23 Dec 2014 04:54:45 +0000 (04:54 +0000)]
knf
tedu [Tue, 23 Dec 2014 04:53:20 +0000 (04:53 +0000)]
convert from nointr to waitok
tedu [Tue, 23 Dec 2014 04:48:47 +0000 (04:48 +0000)]
optimize locking a wee bit by holding it for critical parts only
tedu [Tue, 23 Dec 2014 04:47:30 +0000 (04:47 +0000)]
I don't like these macros, they obscure the code.
We can use pool_setipl instead of doing the dance ourselves.
The bufpool is already setipl, we don't need to dance at all. We
should zero the buf.
ok deraadt dlg
deraadt [Tue, 23 Dec 2014 04:08:01 +0000 (04:08 +0000)]
on-media chroot went away a while back
tedu [Tue, 23 Dec 2014 03:29:52 +0000 (03:29 +0000)]
the kvm database only needs to be readable by kmem group. make it so.
schwarze [Tue, 23 Dec 2014 03:27:36 +0000 (03:27 +0000)]
In a2roffsu(), do not parse the number twice.
Gets rid of 25 lines of code and one static buffer.
No functional change for numbers shorter than BUFSIZ characters.
tedu [Tue, 23 Dec 2014 03:26:24 +0000 (03:26 +0000)]
unifdef INET
tedu [Tue, 23 Dec 2014 03:24:08 +0000 (03:24 +0000)]
unifdef some more INET. v4 4life.
tedu [Tue, 23 Dec 2014 02:01:57 +0000 (02:01 +0000)]
convert nointr pool_init argument to pr_waitok
schwarze [Tue, 23 Dec 2014 01:57:11 +0000 (01:57 +0000)]
correctly handle scaling units after .PD
tedu [Tue, 23 Dec 2014 01:55:03 +0000 (01:55 +0000)]
change req pool alloc to null. add prwaitok here and nfs_node_pool which
is also sleeping in all callers, but already used null
tedu [Tue, 23 Dec 2014 01:53:57 +0000 (01:53 +0000)]
change pool allocator to null and pass waitok to indicate nointr
tedu [Tue, 23 Dec 2014 01:53:33 +0000 (01:53 +0000)]
change pool_init allocator to NULL and pass PR_WAITOK in flags as a sign
that these don't need to support interrupts
deraadt [Tue, 23 Dec 2014 01:24:50 +0000 (01:24 +0000)]
backout previous, because libkvm needs two pieces. will let mike
find a different way.
dlg [Tue, 23 Dec 2014 01:12:33 +0000 (01:12 +0000)]
force the pool of pmapvp onto PAGE_SIZE allocations by specifying a
pool allocator. pmapvp is 1024 bytes, and the size * 8 change in pools
without an allocator being specified tries to place it on large pages.
you need pmap to use large pages, and pmap isnt set up yet.
fixed a very early fault on macppc.
debugged with and tested by krw@
ok deraadt@ krw@
mlarkin [Mon, 22 Dec 2014 23:59:43 +0000 (23:59 +0000)]
Move PD_MASK, PT_MASK and a couple macros into pmap.c. The only other
user of these was hibernate, which now gets its own PD_MASK (since
the resume time PD_MASK is essentially disjoint from the runtime
PD_MASK). No functional change, just moving the deck chairs around in
preparation for an upcoming change.
ok deraadt
schwarze [Mon, 22 Dec 2014 23:26:20 +0000 (23:26 +0000)]
The code already pays attention not to close the same block twice.
Similarly, avoid having the same block break two other blocks.
In some situations, this could lead to an endless loop in rew_sub()
found by jsg@ with afl.
Minimal example: .Po Ao Pc Bo Pc Ac Bc
mlarkin [Mon, 22 Dec 2014 22:33:51 +0000 (22:33 +0000)]
Clean up some weird spacing. No functional change.
mlarkin [Mon, 22 Dec 2014 22:22:35 +0000 (22:22 +0000)]
fix an error in piglet allocation when requesting an alignment < PAGE_SIZE
(which we never did, but it was a bug nonetheless).
ok kettenis, deraadt
kurt [Mon, 22 Dec 2014 21:59:18 +0000 (21:59 +0000)]
Link -static -pie executables with rcrt0.o instead of crt0.o such that they
self-relocate.
kurt [Mon, 22 Dec 2014 21:58:25 +0000 (21:58 +0000)]
Self-relocation code for i386.
krw [Mon, 22 Dec 2014 20:08:05 +0000 (20:08 +0000)]
Replace switch workq with taskq, using the blambert@ method (tm).
Tested with non-drm and wsfb systems. ok kettenis@ miod@
kettenis [Mon, 22 Dec 2014 19:32:49 +0000 (19:32 +0000)]
Link -static -pie executables with rcrt0.o instead of crt0.o such that they
self-relocate.
Based on a diff from kurt@
ok deraadt@
deraadt [Mon, 22 Dec 2014 19:18:26 +0000 (19:18 +0000)]
sync
deraadt [Mon, 22 Dec 2014 19:14:59 +0000 (19:14 +0000)]
Static PIE has been delayed for quite a while. By pushing hard with pascal
towards a wimpy (but sufficient) model, kurt and kettenis got upset enough
to do it the right way, right away before we got out of hand. Bravo!
We no longer need /sbin/ld.so on the new roadmap.
kettenis [Mon, 22 Dec 2014 19:04:24 +0000 (19:04 +0000)]
Link -static -pie executables with rcrt0.o instead of crt0.o such that they
self-relocate.
Based on a diff for amd64 from kurt@
kettenis [Mon, 22 Dec 2014 19:02:58 +0000 (19:02 +0000)]
Self-relocation code for hppa.
tedu [Mon, 22 Dec 2014 18:21:10 +0000 (18:21 +0000)]
remove never used in openbsd tahoe support. and ns32k. and pmax.
ok deraadt millert
kettenis [Mon, 22 Dec 2014 16:04:35 +0000 (16:04 +0000)]
Link -static -pie executables with rcrt0.o instead of crt0.o such that they
self-relocate.
Based on a diff for amd64 from kurt@
deraadt [Mon, 22 Dec 2014 15:57:17 +0000 (15:57 +0000)]
sync
tedu [Mon, 22 Dec 2014 15:39:28 +0000 (15:39 +0000)]
dickman noticed /var/rwho keeps coming back. remove it.
kettenis [Mon, 22 Dec 2014 15:05:24 +0000 (15:05 +0000)]
Make it possible to execute PIE binaries that don't have an PT_INTERP segment
(and therefore no interpreter). Necessary to make self-relocating "static"
PIE working.
This will also allow execution of shared libraries that have the 'x' bit set.
Those shouldn't exist, but unfortunately people outside OpenBSD think
differently which means third-party software sometimes installs shared
libraries with the 'x' bit set.
ok kurt@, deraadt@
espie [Mon, 22 Dec 2014 14:24:56 +0000 (14:24 +0000)]
when we run into real errors, the progress meter is distracting, so have
a method ->disable that does something nice to the display, and stops
the progress meter right before we display our first real error.
kettenis [Mon, 22 Dec 2014 14:17:22 +0000 (14:17 +0000)]
Teach ld(1) not to add a PT_INTERP entry for -static -pie.
ok kurt@
kettenis [Mon, 22 Dec 2014 14:09:58 +0000 (14:09 +0000)]
Teach ld(1) not to add a PT_INTERP entry for -static -pie.
ok kurt@
kettenis [Mon, 22 Dec 2014 13:53:01 +0000 (13:53 +0000)]
Self-relocation code for sparc64.
kettenis [Mon, 22 Dec 2014 13:32:51 +0000 (13:32 +0000)]
When skipping a relocation because the referenced symbol is undefined, make
sure we move on to the next relocation entry.
While there, also skip relocations for REL architectures.
shadchin [Mon, 22 Dec 2014 11:21:49 +0000 (11:21 +0000)]
Now does not need to be initialized event.value.
This not used anymore.
ok deraadt@
mpi [Mon, 22 Dec 2014 11:17:20 +0000 (11:17 +0000)]
Operations on the global prefix or address lists should be done under
splsoftnet().
mpi [Mon, 22 Dec 2014 11:05:53 +0000 (11:05 +0000)]
Make sure rtrequest1(9) is called under splsoftnet().
jmc [Mon, 22 Dec 2014 09:26:31 +0000 (09:26 +0000)]
add fingerprinthash to the options list;
jmc [Mon, 22 Dec 2014 09:24:59 +0000 (09:24 +0000)]
tweak previous;
florian [Mon, 22 Dec 2014 09:13:35 +0000 (09:13 +0000)]
Out out you evil network daemon.
OK deraadt@ some time ago
djm [Mon, 22 Dec 2014 09:05:17 +0000 (09:05 +0000)]
mention ssh -Q feature to list supported { MAC, cipher, KEX, key }
algorithms in more places and include the query string used to
list the relevant information; bz#2288
jmc [Mon, 22 Dec 2014 08:24:17 +0000 (08:24 +0000)]
tweak previous;
djm [Mon, 22 Dec 2014 08:06:03 +0000 (08:06 +0000)]
regression test for multiple required pubkey authentication;
ok markus@
djm [Mon, 22 Dec 2014 08:04:23 +0000 (08:04 +0000)]
correct description of what will happen when a AuthorizedKeysCommand is
specified but AuthorizedKeysCommandUser is not (sshd will refuse to start)
djm [Mon, 22 Dec 2014 07:55:51 +0000 (07:55 +0000)]
make internal handling of filename arguments of "none" more consistent
with ssh. "none" arguments are now replaced with NULL when the
configuration is finalised.
Simplifies checking later on (just need to test not-NULL rather than
that + strcmp) and cleans up some inconsistencies. ok markus@
djm [Mon, 22 Dec 2014 07:51:30 +0000 (07:51 +0000)]
remember which public keys have been used for authentication and
refuse to accept previously-used keys.
This allows AuthenticationMethods=publickey,publickey to require
that users authenticate using two _different_ pubkeys.
ok markus@
djm [Mon, 22 Dec 2014 07:24:11 +0000 (07:24 +0000)]
fix passing of wildcard forward bind addresses when connection
multiplexing is in use; patch from Sami Hartikainen via bz#2324;
ok dtucker@
djm [Mon, 22 Dec 2014 06:14:29 +0000 (06:14 +0000)]
make this slightly easier to diff against portable
dlg [Mon, 22 Dec 2014 04:43:38 +0000 (04:43 +0000)]
add TIMEOUT_INITIALIZER for initting timeout declaractions.
similar to TASK_INITIALIZER and all the queue _INITIALIZER things.
ok deraadt@
kurt [Mon, 22 Dec 2014 03:51:08 +0000 (03:51 +0000)]
Introduce new csu0 variant for -static -pie binaries to use called
rcsu0.o where the initial 'r' is for relocatable. rcsu0.o performs
self-relocation on static pie binaries by calling a slightly modified
copy of ld.so's _dl_boot_bind() in boot.h.
The first arch implementatation is also included for amd64 where
__start calls _dl_boot_bind() and then calls ___start(). Includes
parts from kettenis@ to help get R_X86_64_64 relocations working
and proper handling for undefined weak symbols.
This is the first part of several to get static pie self-relocating
binaries working. binutils, gcc and kernel changes are forthcoming
to complete the solution, then per-arch implementations are needed
for MD_RCRT0_START in csu.
okay kettenis@ pascal@ deraadt@
tedu [Mon, 22 Dec 2014 03:38:01 +0000 (03:38 +0000)]
convert to using siphash
tedu [Mon, 22 Dec 2014 03:33:18 +0000 (03:33 +0000)]
fix docs for NOBROADCASTKILL
deraadt [Mon, 22 Dec 2014 03:14:59 +0000 (03:14 +0000)]
bcopy -> memcpy, as in amd64
deraadt [Mon, 22 Dec 2014 03:13:45 +0000 (03:13 +0000)]
bcopy -> memcpy; ok tedu
tedu [Mon, 22 Dec 2014 02:59:53 +0000 (02:59 +0000)]
remove some unused fields from pool. ok dlg
deraadt [Mon, 22 Dec 2014 02:55:48 +0000 (02:55 +0000)]
amd64 now also uses the ssyms mechanism.
ok guenther
tedu [Mon, 22 Dec 2014 02:28:51 +0000 (02:28 +0000)]
unifdef INET
tedu [Mon, 22 Dec 2014 02:26:53 +0000 (02:26 +0000)]
unifdef INET
djm [Mon, 22 Dec 2014 02:15:52 +0000 (02:15 +0000)]
adjust for new SHA256 key fingerprints and slightly-different MD5 hex
fingerprint format
djm [Mon, 22 Dec 2014 01:14:49 +0000 (01:14 +0000)]
poll changes to netcat (usr.bin/netcat.c r1.125) broke this test;
fix it by ensuring more stdio fds are sent to devnull
dlg [Mon, 22 Dec 2014 00:33:40 +0000 (00:33 +0000)]
if we're able to use large page allocators, try and place at least
8 items on a page. this reduces the number of allocator operations
we have to do per item on large items.
ok tedu@
jmc [Sun, 21 Dec 2014 23:35:14 +0000 (23:35 +0000)]
tweak previous;
djm [Sun, 21 Dec 2014 23:12:42 +0000 (23:12 +0000)]
document FingerprintHash here too
djm [Sun, 21 Dec 2014 22:27:55 +0000 (22:27 +0000)]
Add FingerprintHash option to control algorithm used for key
fingerprints. Default changes from MD5 to SHA256 and format
from hex to base64.
Feedback and ok naddy@ markus@
shadchin [Sun, 21 Dec 2014 18:25:07 +0000 (18:25 +0000)]
WSCONS_EVENT_WSMOUSED_SLEEP and WSCONS_EVENT_WSMOUSED_CLOSE not used anymore.
ok mpi@
shadchin [Sun, 21 Dec 2014 18:23:37 +0000 (18:23 +0000)]
Cleanup - remove event WSCONS_EVENT_WSMOUSED_SLEEP, WSCONS_EVENT_WSMOUSED_CLOSE.
Do not need it now.
ok mpi@
shadchin [Sun, 21 Dec 2014 18:16:07 +0000 (18:16 +0000)]
WSMOUSE_INPUT_WSMOUSED_CLOSE not used anymore.
ok mpi@
mlarkin [Sun, 21 Dec 2014 16:27:07 +0000 (16:27 +0000)]
Prevent writing to the kernel area via the direct map. We do this by padding
the end of the kernel area to 2MB, so that the direct map pages can then
have the W permission removed (X permission was already removed in a previous
diff). This creates a VA hole at the end of bss, so adjust for that since
that's where symbols get loaded by the bootloader (for now, map that region
RO until the boot loader can be updated to place the symbols at "end" instead
of "end of bss").
with help from and ok deraadt@
schwarze [Sun, 21 Dec 2014 14:49:00 +0000 (14:49 +0000)]
Use -m for macro set selection in mandoc(1) mode only, not in man(1)
and apropos(1) mode. While here, put a space character between
options and option arguments in error messages.
Both reported by Alessandro DE LAURENZIS <just22 dot adl at gmail dot com>.
mpi [Sun, 21 Dec 2014 12:04:01 +0000 (12:04 +0000)]
Always clear a port reset feature after setting it, or at least try to.
Otherwise we might leave a port in an unwanted state.
Found while investigating timeout issues on xhci(4).
mpi [Sun, 21 Dec 2014 11:46:53 +0000 (11:46 +0000)]
Various transfer improvements/fixes.
Chain TRBs when submitting bulk or interrupt transfers with a length
bigger than the Maxium Packet Size of the endpoint.
Append a supplementary TRB if a zero length packet is required.
While here, set the flags of each TRB at once. Even if this driver
implementation fills the first TRB of a chain last, be safe and make
sure the hardware wont miss any flag.
Note that with this change, DMA sync operations might not cover the
whole chain, just like for control transfers, if the ring is starting
over.
Previous version of this diff tested by Peter N. M. Hansteen, thanks!
mpi [Sun, 21 Dec 2014 11:20:24 +0000 (11:20 +0000)]
Use a bitmask when dumping TRB flags. No change in !XHCI_DEBUG.
espie [Sun, 21 Dec 2014 09:33:12 +0000 (09:33 +0000)]
fix test-redef2:
- introduce explicit STORAGE classes for the shadow stack entries
- delay freeing definitions if they're in-use, keep them in a simple array.
okay millert@
guenther [Sun, 21 Dec 2014 04:49:00 +0000 (04:49 +0000)]
<sys/endian.h> needs <sys/cdefs.h>
found previously by someone whose email I've lost; rediscovered by miod@
ok millert@ deraadt@
guenther [Sun, 21 Dec 2014 00:54:49 +0000 (00:54 +0000)]
Stop pulling in <arpa/inet.h> or <arpa/nameser.h> when unnecessary.
*Do* pull it in when in_{port,addr}_h is needed and <netinet/in.h> isn't.
ok reyk@
daniel [Sun, 21 Dec 2014 00:23:30 +0000 (00:23 +0000)]
Show the sign for NaN as per POSIX; from Elliott Hughes.
ok martynas@, millert@, doug@
daniel [Sun, 21 Dec 2014 00:17:24 +0000 (00:17 +0000)]
Fix build with -Werror -std=c99 -pedantic.
ok schwarze@