version 1.507, 2017/07/04 19:02:11 |
version 1.508, 2017/07/17 12:02:53 |
|
|
|
|
# Re-link libraries, placing the objects in a random order. |
# Re-link libraries, placing the objects in a random order. |
reorder_libs() { |
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 |
[[ $library_aslr == NO ]] && return |
|
|
|
|
echo -n 'reordering libraries:' |
echo -n 'reordering libraries:' |
|
|
# Only choose the latest version of the libraries. |
# Only choose the latest version of the libraries. |
for _liba in /usr/lib/libc.so.*.a /usr/lib/libcrypto.so.*.a; do |
for _liba in /usr/lib/lib{c,crypto}; do |
_liba=$(ls ${_liba%%.[0-9]*}*.a | sort -V | tail -1) |
_libas="$_libas $(ls $_liba.so.+([0-9.]).a | sort -V | tail -1)" |
for _l in $_libas; do |
|
[[ $_l == $_liba ]] && continue 2 |
|
done |
|
_libas="$_libas $_liba" |
|
done |
done |
|
_libas=${_libas# } |
|
|
# Remount read-write, if /usr/lib is on a read-only ffs filesystem. |
# Remount read-write, if /usr/lib is on a read-only ffs filesystem. |
if [[ $_mp == *' type ffs '*'read-only'* ]]; then |
if [[ $_mp == *' type ffs '*'read-only'* ]]; then |