[pacman-dev] [PATCH 3/4] makepkg: always use read's -r flag with filenames

Dave Reisner dreisner at archlinux.org
Tue Sep 3 23:19:07 EDT 2013


These are all cases where we're reading filenames -- any backslashes
are intentional and should not be interpreted.

Signed-off-by: Dave Reisner <dreisner at archlinux.org>
---
 scripts/makepkg.sh.in | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 2239913..f92f658 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1533,7 +1533,7 @@ strip_file() {
 		objcopy --add-gnu-debuglink="$dbgdir/${binary#/}.debug" "$binary"
 
 		# create any needed hardlinks
-		while read -d '' file ; do
+		while read -rd '' file ; do
 			if [[ "${binary}" -ef "${file}" && ! -f "$dbgdir/${file}.debug" ]]; then
 				mkdir -p "$dbgdir/${file%/*}"
 				ln "$dbgdir/${binary}.debug" "$dbgdir/${file}.debug"
@@ -1615,7 +1615,7 @@ tidy_install() {
 		while read -rd ' ' inode; do
 			read file
 			find ${MAN_DIRS[@]} -type l 2>/dev/null |
-			while read link ; do
+			while read -r link ; do
 				if [[ "${file}" -ef "${link}" ]] ; then
 					rm -f "$link" "${link}.gz"
 					if [[ ${file%/*} = ${link%/*} ]]; then
@@ -1649,7 +1649,7 @@ tidy_install() {
 		fi
 
 		local binary strip_flags
-		find . -type f -perm -u+w -print0 2>/dev/null | while read -d '' binary ; do
+		find . -type f -perm -u+w -print0 2>/dev/null | while read -rd '' binary ; do
 			case "$(file -bi "$binary")" in
 				*application/x-sharedlib*)  # Libraries (.so)
 					strip_flags="$STRIP_SHARED";;
@@ -1667,7 +1667,7 @@ tidy_install() {
 	if check_option "upx" "y"; then
 		msg2 "$(gettext "Compressing binaries with %s...")" "UPX"
 		local binary
-		find . -type f -perm -u+w 2>/dev/null | while read binary ; do
+		find . -type f -perm -u+w 2>/dev/null | while read -r binary ; do
 			if [[ $(file -bi "$binary") = *'application/x-executable'* ]]; then
 				upx $UPXFLAGS "$binary" &>/dev/null ||
 						warning "$(gettext "Could not compress binary : %s")" "${binary/$pkgdir\//}"
@@ -1695,7 +1695,7 @@ find_libdepends() {
 	local libdeps filename soarch sofile soname soversion;
 	declare -A libdeps;
 
-	while read filename; do
+	while read -r filename; do
 		# get architecture of the file; if soarch is empty it's not an ELF binary
 		soarch=$(LC_ALL=C readelf -h "$filename" 2>/dev/null | sed -n 's/.*Class.*ELF\(32\|64\)/\1/p')
 		[[ -n "$soarch" ]] || continue
-- 
1.8.4



More information about the pacman-dev mailing list