From eb32c320639f0984949501dd1dafffd89e85add4 Mon Sep 17 00:00:00 2001 From: Adnan Maolood Date: Wed, 21 Apr 2021 11:36:41 -0400 Subject: [PATCH] fs: Fix panic on indexing URL of zero length --- fs.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs.go b/fs.go index 7bdf43b..1a734b5 100644 --- a/fs.go +++ b/fs.go @@ -131,13 +131,13 @@ func serveFile(w ResponseWriter, r *Request, fsys fs.FS, name string, redirect b url := r.URL.Path if stat.IsDir() { // Add trailing slash - if url[len(url)-1] != '/' { + if len(url) != 0 && url[len(url)-1] != '/' { w.WriteHeader(StatusPermanentRedirect, path.Base(url)+"/") return } } else { // Remove trailing slash - if url[len(url)-1] == '/' { + if len(url) != 0 && url[len(url)-1] == '/' { w.WriteHeader(StatusPermanentRedirect, "../"+path.Base(url)) return } @@ -147,7 +147,7 @@ func serveFile(w ResponseWriter, r *Request, fsys fs.FS, name string, redirect b if stat.IsDir() { // Redirect if the directory name doesn't end in a slash url := r.URL.Path - if url[len(url)-1] != '/' { + if len(url) != 0 && url[len(url)-1] != '/' { w.WriteHeader(StatusRedirect, path.Base(url)+"/") return }