summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gerrand <adg@golang.org>2013-11-01 11:21:05 +1100
committerAndrew Gerrand <adg@golang.org>2013-11-01 11:21:05 +1100
commit86703d4624b71bf34c346c051b72b641a23422f8 (patch)
treea452322efebc23b55a756b5544c2c890561f62e9
parentc923bf852e030055491249c488a426ebeceb53e1 (diff)
downloadgo-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
-rw-r--r--src/pkg/net/hosts_test.go13
-rw-r--r--src/pkg/net/parse.go2
-rw-r--r--src/pkg/net/testdata/hosts_singleline1
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