From: Hyang-Ah (Hana) Kim Date: Fri, 27 Feb 2015 17:34:25 +0000 (-0500) Subject: os: fix LinkError creation on windows. X-Git-Tag: go1.5beta1~1823 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c2025c4131a62bc034c663d2e8c22e37b09fce04;p=gostls13.git os: fix LinkError creation on windows. Not only carrying invalid info but also this caused Error to crash with null pointer exception. Change-Id: Ibfe63d20eb9b9178ea618e59c74111e9245a6779 Reviewed-on: https://go-review.googlesource.com/6270 Run-TryBot: Hyang-Ah Hana Kim Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/os/file_windows.go b/src/os/file_windows.go index 2a90a50559..fa0736753c 100644 --- a/src/os/file_windows.go +++ b/src/os/file_windows.go @@ -508,9 +508,8 @@ func Link(oldname, newname string) error { if err != nil { return &LinkError{"link", oldname, newname, err} } - - e := syscall.CreateHardLink(n, o, 0) - if e != nil { + err = syscall.CreateHardLink(n, o, 0) + if err != nil { return &LinkError{"link", oldname, newname, err} } return nil diff --git a/src/os/os_test.go b/src/os/os_test.go index 5285b76024..21d229635d 100644 --- a/src/os/os_test.go +++ b/src/os/os_test.go @@ -533,6 +533,14 @@ func TestHardLink(t *testing.T) { if err != nil { t.Fatalf("link %q, %q failed: %v", to, from, err) } + + none := "hardlinktestnone" + err = Link(none, none) + // Check the returned error is well-formed. + if lerr, ok := err.(*LinkError); !ok || lerr.Error() == "" { + t.Errorf("link %q, %q failed to return a valid error", none, none) + } + defer Remove(from) tostat, err := Stat(to) if err != nil {