diff options
author | Andrew Gerrand <adg@golang.org> | 2013-11-01 11:21:05 +1100 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2013-11-01 11:21:05 +1100 |
commit | 86703d4624b71bf34c346c051b72b641a23422f8 (patch) | |
tree | a452322efebc23b55a756b5544c2c890561f62e9 /src/pkg/net | |
parent | c923bf852e030055491249c488a426ebeceb53e1 (diff) | |
download | go-86703d4624b71bf34c346c051b72b641a23422f8.tar.gz |
[release-branch.go1.2] net: handle single-line non-\n-terminated files correctly in readLine
??? CL 15960047 / a0d4544cdb2a
net: handle single-line non-\n-terminated files correctly in readLine
Fixes issue 6646.
R=rsc, bradfitz
CC=golang-dev
https://codereview.appspot.com/15960047
Committer: Russ Cox <rsc@golang.org>
???
R=golang-dev
CC=golang-dev
https://codereview.appspot.com/20560044
Diffstat (limited to 'src/pkg/net')
-rw-r--r-- | src/pkg/net/hosts_test.go | 13 | ||||
-rw-r--r-- | src/pkg/net/parse.go | 2 | ||||
-rw-r--r-- | src/pkg/net/testdata/hosts_singleline | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/pkg/net/hosts_test.go b/src/pkg/net/hosts_test.go index 064e7e432..b07ed0baa 100644 --- a/src/pkg/net/hosts_test.go +++ b/src/pkg/net/hosts_test.go @@ -53,6 +53,19 @@ func TestLookupStaticHost(t *testing.T) { hostsPath = p } +// https://code.google.com/p/go/issues/detail?id=6646 +func TestSingleLineHostsFile(t *testing.T) { + p := hostsPath + hostsPath = "testdata/hosts_singleline" + + ips := lookupStaticHost("odin") + if len(ips) != 1 || ips[0] != "127.0.0.2" { + t.Errorf("lookupStaticHost = %v, want %v", ips, []string{"127.0.0.2"}) + } + + hostsPath = p +} + func TestLookupHost(t *testing.T) { // Can't depend on this to return anything in particular, // but if it does return something, make sure it doesn't diff --git a/src/pkg/net/parse.go b/src/pkg/net/parse.go index 7c87b42f6..6056de248 100644 --- a/src/pkg/net/parse.go +++ b/src/pkg/net/parse.go @@ -54,7 +54,7 @@ func (f *file) readLine() (s string, ok bool) { if n >= 0 { f.data = f.data[0 : ln+n] } - if err == io.EOF { + if err == io.EOF || err == io.ErrUnexpectedEOF { f.atEOF = true } } diff --git a/src/pkg/net/testdata/hosts_singleline b/src/pkg/net/testdata/hosts_singleline new file mode 100644 index 000000000..5f5f74a3f --- /dev/null +++ b/src/pkg/net/testdata/hosts_singleline @@ -0,0 +1 @@ +127.0.0.2 odin
\ No newline at end of file |