From dbbbe96fd5ca7af116f3b64ead9037465e5681df Mon Sep 17 00:00:00 2001 From: Mauri de Souza Meneguzzo Date: Sun, 19 Nov 2023 17:45:30 -0300 Subject: [PATCH] improvements for error handling --- src/net/http/fs.go | 5 ++--- src/net/http/fs_test.go | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/net/http/fs.go b/src/net/http/fs.go index 911fa0d659..3993c68c1e 100644 --- a/src/net/http/fs.go +++ b/src/net/http/fs.go @@ -78,9 +78,8 @@ func (d Dir) Open(name string) (File, error) { if dir == "" { dir = "." } - fi, err := os.Stat(dir) - if err != nil || !fi.IsDir() { - return nil, errors.New("http: invalid directory path") + if fi, _ := os.Stat(dir); fi != nil && !fi.IsDir() { + return nil, errors.New("http: attempting to traverse a non-directory") } fullName := filepath.Join(dir, path) f, err := os.Open(fullName) diff --git a/src/net/http/fs_test.go b/src/net/http/fs_test.go index ec3c34acc9..3ed018f87d 100644 --- a/src/net/http/fs_test.go +++ b/src/net/http/fs_test.go @@ -1689,8 +1689,8 @@ func testFileServerDirWithRootFile(t *testing.T, mode testMode) { if err != nil { t.Fatal(err) } - if s := res.StatusCode; s != StatusInternalServerError { - t.Errorf("got %q, want 500", s) + if g, w := res.StatusCode, StatusInternalServerError; g != w { + t.Errorf("StatusCode mismatch: got %d, want: %d", g, w) } res.Body.Close() }