[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64)
From: |
Matthew Story |
Subject: |
read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64) |
Date: |
Wed, 23 Nov 2011 09:03:33 -0500 |
Bash Version: GNU bash, version 4.1.7(1)-release (amd64-portbld-freebsd8.0)
OS: FreeBSD 8.0
Hardware: amd64
Environment: jail
Description: read terminates reading all records at first null-byte ( chr(0) )
in a stream, null-bytes are valid ascii characters and should not cause read to
stop reading
a line this behavior is not reproducible using bourne shell.
Steps To Reproduce:
[bash ~]$ printf 'foo\0bar\n' | while read line; do echo "$line"; done
foo
[bash ~]$ # verify that printf is yielding the expected output
[bash ~]$ printf 'foo\0bar\n' | od -a
0000000 f o o nul b a r nl
0000010
[bash ~]$ # verify that it is not just echo with awk
[bash ~]$ printf 'foo\0bar\n' | while read line; do awk -v line="$line" 'BEGIN
{ print line; }'; done | od -a
0000000 f o o nl
0000004
[bash ~]$ # same awk test with a subshell and no read -- note that null-byte is
removed, but feed does not end
[bash ~]$ awk -v line=`printf 'foo\0bar\n'` 'BEGIN { print line; }' | od -a
0000000 f o o b a r nl
0000007'
[bash ~]$ # behavior with multiple lines
[bash ~]$ printf 'foo\0bar\nbaz\n' | while read line; do echo "$line"; done
foo
baz
[bash ~]$ # behavior with read -r
[bash ~]$ printf 'foo\0bar\nbaz\n' | while read -r line; do echo "$line"; done
foo
baz
Behavior in bourne shell:
$ # note that the null-byte is dropped, but the line is read
$ printf 'foo\0bar\nbaz\n' | while read line; do echo "$line"; done | od -a
0000000 f o o b a r nl b a z nl
0000013
$ # test with awk instead of echo
$ printf 'foo\0bar\nbaz\n' | while read line; do awk -v line="$line" 'BEGIN {
print line; }'; done | od -a
0000000 f o o b a r nl b a z nl
0000013
- read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64),
Matthew Story <=
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Greg Wooledge, 2011/11/23
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Chet Ramey, 2011/11/23
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Matthew Story, 2011/11/23
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Chet Ramey, 2011/11/23
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Matthew Story, 2011/11/23
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Chet Ramey, 2011/11/24
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Matthew Story, 2011/11/28
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Greg Wooledge, 2011/11/29
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Chet Ramey, 2011/11/29
- Re: read fails on null-byte: v4.1.7 FreeBSD 8.0 (amd64), Matthew Story, 2011/11/29