Index: bin/ebuild.sh =================================================================== RCS file: /var/cvsroot/gentoo-src/portage/bin/ebuild.sh,v retrieving revision 1.194 diff -u -b -B -w -p -r1.194 ebuild.sh --- bin/ebuild.sh 5 Sep 2004 09:23:17 -0000 1.194 +++ bin/ebuild.sh 9 Sep 2004 02:13:24 -0000 @@ -961,6 +964,25 @@ dyn_install() { echo "UNSAFE SetUID: $i" done + if [ -x /usr/bin/readelf -a -x /usr/bin/file ]; then + for x in $(find "${D}/" -type f \( -perm -04000 -o -perm -02000 \) ); do + f=$(file "${x}") + if [ -z "${f/*SB executable*/}" -o -z "${f/*SB shared object*/}" ]; then + /usr/bin/readelf -d "${x}" | egrep '\(FLAGS(.*)NOW' > /dev/null + if [ $? != 0 ]; then + if [ ! -z "${f/*statically linked*/}" ]; then + #uncomment this line out after developers have had ample time to fix pkgs. + #UNSAFE=$(($UNSAFE + 1)) + echo -ne '\a' + echo "QA Notice: Security risk ${x:${#D}:${#x}}. Please consider relinking with 'append-ldflags -Wl,-z,now' to fix." + echo -ne '\a' + sleep 1 + fi + fi + fi + done + fi + if [[ $UNSAFE > 0 ]]; then die "There are ${UNSAFE} unsafe files. Portage will not install them." fi