Browse Source

Optimize and simplify the selection of the latest library version in

reorder_libs().
From Klemens Nanni with input from rpe.
ok rpe, zhuk
OPENBSD_6_2
tb 7 years ago
parent
commit
33c5e85118
1 changed files with 5 additions and 8 deletions
  1. +5
    -8
      src/etc/rc

+ 5
- 8
src/etc/rc View File

@ -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


Loading…
Cancel
Save