[oe-commits] [openembedded-core] 09/10: rpm2cpio.sh: fix to handle newline character

git at git.openembedded.org git at git.openembedded.org
Tue Feb 18 23:54:56 UTC 2020


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 88f13471bc9d838890a4d018192cf3238b7851a1
Author: Lori Hikichi <lori.hikichi at broadcom.com>
AuthorDate: Tue Feb 18 11:14:22 2020 -0800

    rpm2cpio.sh: fix to handle newline character
    
    This script is attempting to read binary data from an rpm file.
    If any of the bytes it is attempt to read is the binary value 0xa
    (i.e. a newline) then the script does not properly deal with this
    special case. Due to the behavior of command substitution, instead of
    fetching the value 0xa, the script makes an error and get the value 0
    instead.
    
    The fix and the following explantion was taken from this post...
    
    https://unix.stackexchange.com/questions/10801/
    how-to-use-bash-script-to-read-binary-file-content
    
    Command substitution $(…) strips final newlines in the command output.
    There's a fairly easy workaround.  Make sure the output ends in a
    character other than a newline, then strip that one character.
    
    Signed-off-by: Lori Hikichi <lori.hikichi at broadcom.com>
    Signed-off-by: Scott Branden <scott.branden at broadcom.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/rpm2cpio.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/rpm2cpio.sh b/scripts/rpm2cpio.sh
index 876c53c..7cd771b 100755
--- a/scripts/rpm2cpio.sh
+++ b/scripts/rpm2cpio.sh
@@ -22,7 +22,8 @@ calcsize() {
 
 	i=0
 	while [ $i -lt 8 ]; do
-		b="$(_dd $(($offset + $i)) bs=1 count=1)"
+ 		b=$(_dd $(($offset + $i)) bs=1 count=1; echo X)
+ 		b=${b%X}
 		[ -z "$b" ] &&
 			b="0" ||
 			b="$(exec printf '%u\n' "'$b")"

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list