From c7164856d29c959dedd76ff3eb075605a7c32437 Mon Sep 17 00:00:00 2001 From: kugiyasan <44143656+kugiyasan@users.noreply.github.com> Date: Sat, 30 Oct 2021 04:04:43 -0400 Subject: [PATCH] issue #420 added MaxDate.IsZero() check (#427) * issue #420 return 400 response when Max-Days is too big * issue #420 moved the Max-Days check before saving the metadata * issue #420 added a logging message when Max-Days is invalid * issue #420 added MaxDate.IsZero() check Co-authored-by: kugiyasan --- server/handlers.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/handlers.go b/server/handlers.go index a31e29c..9220782 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -533,6 +533,10 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) { s.logger.Printf("%s", err.Error()) http.Error(w, errors.New("Could not encode metadata").Error(), 500) return + } else if !metadata.MaxDate.IsZero() && time.Now().After(metadata.MaxDate) { + s.logger.Print("Invalid MaxDate") + http.Error(w, errors.New("Invalid MaxDate, make sure Max-Days is smaller than 290 years").Error(), 400) + return } else if err := s.storage.Put(token, fmt.Sprintf("%s.metadata", filename), buffer, "text/json", uint64(buffer.Len())); err != nil { s.logger.Printf("%s", err.Error()) http.Error(w, errors.New("Could not save metadata").Error(), 500)