binfmt.sh: use read in raw mode

The read builtin in most shells will interpret backslash characters
as escapes, and they are lost when reading binfmt files line-by-line.
This causes magic strings containing backslashes to be mangled and
become invalid, resulting in erroneous 'invalid entry' messages.

The -r option to read disables special handling of backslashes and
keeps all lines intact.

X-Gentoo-Bug: 575114
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=575114
This commit is contained in:
Dustin C. Hatch 2016-02-18 19:18:13 -06:00 committed by William Hubbs
parent 7eaf71176b
commit beaa71df0a

View File

@ -22,7 +22,7 @@ apply_file() {
### FILE FORMAT ### ### FILE FORMAT ###
# See https://www.kernel.org/doc/Documentation/binfmt_misc.txt # See https://www.kernel.org/doc/Documentation/binfmt_misc.txt
while read line; do while read -r line; do
LINENUM=$(( LINENUM+1 )) LINENUM=$(( LINENUM+1 ))
case $line in case $line in
\#*) continue ;; \#*) continue ;;