From 3a2230d50bbb3a8471c4e7063ab45b619fbe4b6a Mon Sep 17 00:00:00 2001 From: clsr Date: Fri, 17 Jun 2016 17:39:38 +0200 Subject: Fix invalid ID detection --- api.go | 2 +- storage.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/api.go b/api.go index 2e9df52..9edf618 100644 --- a/api.go +++ b/api.go @@ -17,7 +17,7 @@ import ( ) func handleFile(w http.ResponseWriter, r *http.Request) { - f, hash, size, modtime, err := storage.Get(strings.TrimRight(r.URL.Path, "/")) + f, hash, size, modtime, err := storage.Get(strings.TrimLeft(r.URL.Path, "/")) if err != nil { if _, ok := err.(ErrNotFound); ok { http.Error(w, err.Error(), http.StatusNotFound) diff --git a/storage.go b/storage.go index 588b121..95ad72b 100644 --- a/storage.go +++ b/storage.go @@ -72,7 +72,8 @@ func (s *Storage) Get(id string) (file *os.File, hash string, size int64, modtim id = id[:len(id)-len(ext)] for i := 0; i < len(id); i++ { if !strings.ContainsRune(s.IdCharset, rune(id[i])) { - err = errors.New("invalid ID") + err = errors.New("invalid ID: " + id) + return } } folder := s.idToFolder("ids", id) -- cgit