|
|
@ -1,4 +1,4 @@ |
|
|
|
# $OpenBSD: rc,v 1.507 2017/07/04 19:02:11 rpe Exp $ |
|
|
|
# $OpenBSD: rc,v 1.508 2017/07/17 12:02:53 tb Exp $ |
|
|
|
|
|
|
|
# System startup script run by init on autoboot or after single-user. |
|
|
|
# Output and error are redirected to console by init, and the console is the |
|
|
@ -158,7 +158,7 @@ make_keys() { |
|
|
|
|
|
|
|
# Re-link libraries, placing the objects in a random order. |
|
|
|
reorder_libs() { |
|
|
|
local _dkdev _l _liba _libas _mp _tmpdir _remount=false _error=false |
|
|
|
local _dkdev _liba _libas _mp _tmpdir _remount=false _error=false |
|
|
|
|
|
|
|
[[ $library_aslr == NO ]] && return |
|
|
|
|
|
|
@ -171,13 +171,10 @@ reorder_libs() { |
|
|
|
echo -n 'reordering libraries:' |
|
|
|
|
|
|
|
# Only choose the latest version of the libraries. |
|
|
|
for _liba in /usr/lib/libc.so.*.a /usr/lib/libcrypto.so.*.a; do |
|
|
|
_liba=$(ls ${_liba%%.[0-9]*}*.a | sort -V | tail -1) |
|
|
|
for _l in $_libas; do |
|
|
|
[[ $_l == $_liba ]] && continue 2 |
|
|
|
done |
|
|
|
_libas="$_libas $_liba" |
|
|
|
for _liba in /usr/lib/lib{c,crypto}; do |
|
|
|
_libas="$_libas $(ls $_liba.so.+([0-9.]).a | sort -V | tail -1)" |
|
|
|
done |
|
|
|
_libas=${_libas# } |
|
|
|
|
|
|
|
# Remount read-write, if /usr/lib is on a read-only ffs filesystem. |
|
|
|
if [[ $_mp == *' type ffs '*'read-only'* ]]; then |
|
|
|