kettenis [Thu, 25 Dec 2014 23:11:21 +0000 (23:11 +0000)]
Don't generate PLT entries for symbols defined in a regular object for
-static -pie.
On sparc64, avoid generating GLOB_DAT relocs and convert certain absolute
relocs into RELATIVE relocs when we can for -static -pie.
With this change we don't need -Wl,-Bsymbolic anymore when building -static
-pie binaries.
ok millert@, kurt@
kettenis [Thu, 25 Dec 2014 23:10:17 +0000 (23:10 +0000)]
Don't generate PLT entries for symbols defined in a regular object for
-static -pie.
On sparc64, avoid generating GLOB_DAT relocs and convert certain absolute
relocs into RELATIVE relocs when we can for -static -pie.
With this change we don't need -Wl,-Bsymbolic anymore when building -static
-pie binaries.
ok millert@, kurt@
benno [Thu, 25 Dec 2014 22:20:52 +0000 (22:20 +0000)]
return ERANGE instead of ENOMEM, so callers can differentiate real oom
from this case where we have a static buffer and cant realloc.
ok phessler, claudio, reyk
kurt [Thu, 25 Dec 2014 21:38:45 +0000 (21:38 +0000)]
Use archdep.h GOT_PERMS define for mprotect of GOT. okay kettenis@
otto [Thu, 25 Dec 2014 20:13:14 +0000 (20:13 +0000)]
subtraction of two void * is not well defined, plus two void * can be apart
more than an int can hold; ok krw@ deraadt@ and tedu@ (by implication)
pascal [Thu, 25 Dec 2014 18:58:34 +0000 (18:58 +0000)]
Delete misleading and dangerous comment about customising STATIC. Nowadays,
it's not a user-settable knob.
general agreement from miod@ kettenis@ deraadt@
schwarze [Thu, 25 Dec 2014 17:18:40 +0000 (17:18 +0000)]
Reduce memory and time consumption on certain malformed input files
by limiting the length of expanded input lines during the
(usually recursive) expansion of user defined strings.
Resource hogging found by jsg@ with afl.
schwarze [Wed, 24 Dec 2014 23:31:59 +0000 (23:31 +0000)]
Support negative indentations for mdoc(7) displays and lists.
Not exactly recommended for use, rather for groff compatibility.
While here, introduce similar SHRT_MAX limits as in man(7),
fixing a few cases of infinite output found by jsg@ with afl.
miod [Wed, 24 Dec 2014 22:48:27 +0000 (22:48 +0000)]
Pass real sizes to free().
tedu [Wed, 24 Dec 2014 22:10:34 +0000 (22:10 +0000)]
simplify crypt_checkpass. The API promise is that this function doesn't
use global data. The simplest fix is to only check blowfish passwords,
and implicitly lock out DES passwords.
crypt_checkpass is currently only used in one place, passwd, to verify
the local user's password, so this is probably acceptable.
Gives people a little more time to migrate away from DES before introduing
checkpass into more places.
tedu [Wed, 24 Dec 2014 22:04:26 +0000 (22:04 +0000)]
simplify. bcrypt only support and use newer libc APIs. no makekey emul.
ok deraadt
schwarze is a little sad to see the last 1/8 shared man page go, but we
have a support program in place, called the attic.
miod [Wed, 24 Dec 2014 21:15:30 +0000 (21:15 +0000)]
Partially revert 1.46 and print more details when panicing at the end of
trap(). This is expected to reduce loss of hair. ok deraadt@
miod [Wed, 24 Dec 2014 18:46:12 +0000 (18:46 +0000)]
tsciic(4): i2c controller onboard Tsunami and Titan chipsets, gives access to
the fan sensors on systems without RMC. From NetBSD, ok deraadt@
schwarze [Wed, 24 Dec 2014 18:03:34 +0000 (18:03 +0000)]
For .RS, we need to save the information how much we actually indented
because negative indents can get truncated, in which case we no longer
know how to restore the original indent at the end of the block.
This also solves another case of effectively infinite output found
by jsg@ with afl, triggered by very large negative indents.
schwarze [Wed, 24 Dec 2014 15:37:23 +0000 (15:37 +0000)]
Prevent unsigned integer underflow when a number is too wide
for a table cell with an "nz" layout specification,
causing essentially infinite output as found by jsg@ with afl.
kurt [Wed, 24 Dec 2014 14:04:09 +0000 (14:04 +0000)]
Expand Elf_Rel relocations to include DT_JMPREL. Inspect DT_PLTREL value
to determine if DT_JMPREL relocations are REL or RELA and conditionally
perform DT_JMPREL in either REL or RELA as needed (idea from kettenis@).
Remove unneeded i386 RELA implementation. i386 static pie working now.
okay kettenis@
eric [Wed, 24 Dec 2014 13:53:39 +0000 (13:53 +0000)]
bump version
eric [Wed, 24 Dec 2014 13:51:31 +0000 (13:51 +0000)]
Correctly fallback to PLAIN if opportunistics TLS fails during TLS handshake.
fix by Stefan Sieg
ok gilles
ajacoutot [Wed, 24 Dec 2014 13:04:43 +0000 (13:04 +0000)]
Implement some kind ordering in the startup of package script daemons.
'rcctl order ...' will prepend the daemon(s) given as argument to the
pkg_scripts line (it can be all daemons, some, or just one).
Without argument, it'll display the current order.
While here, drop a couple of examples from the man page to only leave
the most interesting one.
ok schwarze@ rpe@ (with tweaks) jasper@ robert@ sthen@
espie [Wed, 24 Dec 2014 12:50:22 +0000 (12:50 +0000)]
recheck list for non emptyness *after* filtering obsolete packages.
schwarze [Wed, 24 Dec 2014 09:57:41 +0000 (09:57 +0000)]
When a man(7) document contains unreasonably large numbers for
indentations or paragraph distances, large output may be generated,
which is practically the same as an endless loop; found by jsg@
with afl.
Reject such unreasonably large numbers beyond arbitrary limits
similar to those used by groff (max. 65 blank lines between paragraphs
and max. SHRT_MAX characters per output line) and fall back to
defaults when exceeded. Having the limits behave in exactly the
same way is not relevant.
kettenis [Wed, 24 Dec 2014 08:58:46 +0000 (08:58 +0000)]
Fix previos. Pointed out by kurt@.
eric [Wed, 24 Dec 2014 08:43:58 +0000 (08:43 +0000)]
missing include
afresh1 [Wed, 24 Dec 2014 04:45:44 +0000 (04:45 +0000)]
Use an extension that installperl skips for the Config_heavy modifications
afresh1 [Wed, 24 Dec 2014 03:53:04 +0000 (03:53 +0000)]
Avoid /usr/local while building perl, but allow it for ports
commit it deraadt@
lteo [Wed, 24 Dec 2014 03:25:42 +0000 (03:25 +0000)]
Add missing argument names, and sync the argument types and names with
the ones used in the code.
pointed out by schwarze@
lteo [Wed, 24 Dec 2014 03:22:17 +0000 (03:22 +0000)]
Clean up CIPHERS and related sections:
- Sync cipher strings with the ones that are actually implemented.
- Remove CIPHERS SUITE NAMES (the actual cipher suites can be obtained
via "openssl ciphers -v"), CIPHERS NOTES, and CIPHERS HISTORY
sections.
- Stop mentioning export cipher suites since they have already been
removed.
feedback from deraadt@ and jmc@
ok jmc@
djm [Tue, 23 Dec 2014 22:42:48 +0000 (22:42 +0000)]
KNF and add a little more debug()
miod [Tue, 23 Dec 2014 21:39:12 +0000 (21:39 +0000)]
Pass real sizes to free()
miod [Tue, 23 Dec 2014 21:20:40 +0000 (21:20 +0000)]
Fix an obvious free() argument misuse which has been there since r1.1.
tedu [Tue, 23 Dec 2014 20:40:06 +0000 (20:40 +0000)]
as in libc, always assume digest is passed to Final. no null allowed.
kettenis [Tue, 23 Dec 2014 20:38:20 +0000 (20:38 +0000)]
Use the page size passed by the kernel in the Auxilliary Vector to handle
architectures with variable page size.
tedu [Tue, 23 Dec 2014 20:34:41 +0000 (20:34 +0000)]
as in libc, there's no need to check for calling Init on null context
tedu [Tue, 23 Dec 2014 20:32:05 +0000 (20:32 +0000)]
not necessary to zero hash context; the hash final functions all do that.
tedu [Tue, 23 Dec 2014 20:29:23 +0000 (20:29 +0000)]
tmp is a bad name for a shactx
pascal [Tue, 23 Dec 2014 19:32:16 +0000 (19:32 +0000)]
Use ${STATIC} instead of hardcoded -static in order to take advantage of
static pie.
ok deraadt@ miod@ benno@
tedu [Tue, 23 Dec 2014 19:21:58 +0000 (19:21 +0000)]
use endian.h swap macros instead of home grown versions
deraadt [Tue, 23 Dec 2014 17:42:57 +0000 (17:42 +0000)]
new SRCDIRS model seems to work
deraadt [Tue, 23 Dec 2014 17:20:11 +0000 (17:20 +0000)]
sparc64 can move to static pie
deraadt [Tue, 23 Dec 2014 17:17:16 +0000 (17:17 +0000)]
successful switchover to non-reach-around SRCDIR
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().