diff --git a/cmd/storage-rest-client.go b/cmd/storage-rest-client.go index 3c9eb6fe2..924f32c09 100644 --- a/cmd/storage-rest-client.go +++ b/cmd/storage-rest-client.go @@ -289,8 +289,9 @@ func (client *storageRESTClient) DeleteVersion(volume, path string, fi FileInfo) values.Set(storageRESTFilePath, path) var buffer bytes.Buffer - encoder := gob.NewEncoder(&buffer) - encoder.Encode(&fi) + if err := gob.NewEncoder(&buffer).Encode(fi); err != nil { + return err + } respBody, err := client.call(storageRESTMethodDeleteVersion, values, &buffer, -1) defer http.DrainBody(respBody) diff --git a/cmd/storage-rest-common.go b/cmd/storage-rest-common.go index d993cccfa..b4badbc5b 100644 --- a/cmd/storage-rest-common.go +++ b/cmd/storage-rest-common.go @@ -61,7 +61,6 @@ const ( storageRESTFilePath = "file-path" storageRESTVersionID = "version-id" storageRESTTotalVersions = "total-versions" - storageRESTDeleteMarker = "delete-marker" storageRESTSrcVolume = "source-volume" storageRESTSrcPath = "source-path" storageRESTDataDir = "data-dir" diff --git a/cmd/storage-rest-server.go b/cmd/storage-rest-server.go index 050760f44..fb4ba8400 100644 --- a/cmd/storage-rest-server.go +++ b/cmd/storage-rest-server.go @@ -287,9 +287,13 @@ func (s *storageRESTServer) DeleteVersionHandler(w http.ResponseWriter, r *http. volume := vars[storageRESTVolume] filePath := vars[storageRESTFilePath] + if r.ContentLength < 0 { + s.writeErrorResponse(w, errInvalidArgument) + return + } + var fi FileInfo - decoder := gob.NewDecoder(r.Body) - if err := decoder.Decode(&fi); err != nil { + if err := gob.NewDecoder(r.Body).Decode(&fi); err != nil { s.writeErrorResponse(w, err) return } @@ -300,7 +304,7 @@ func (s *storageRESTServer) DeleteVersionHandler(w http.ResponseWriter, r *http. } } -// ReadVersion delete updated metadata. +// ReadVersion read metadata of versionID func (s *storageRESTServer) ReadVersionHandler(w http.ResponseWriter, r *http.Request) { if !s.IsValid(w, r) { return @@ -858,7 +862,7 @@ func registerStorageRESTHandlers(router *mux.Router, endpointZones EndpointZones subrouter.Methods(http.MethodPost).Path(storageRESTVersionPrefix + storageRESTMethodWriteMetadata).HandlerFunc(httpTraceHdrs(server.WriteMetadataHandler)). Queries(restQueries(storageRESTVolume, storageRESTFilePath)...) subrouter.Methods(http.MethodPost).Path(storageRESTVersionPrefix + storageRESTMethodDeleteVersion).HandlerFunc(httpTraceHdrs(server.DeleteVersionHandler)). - Queries(restQueries(storageRESTVolume, storageRESTFilePath, storageRESTVersionID, storageRESTDeleteMarker)...) + Queries(restQueries(storageRESTVolume, storageRESTFilePath)...) subrouter.Methods(http.MethodPost).Path(storageRESTVersionPrefix + storageRESTMethodReadVersion).HandlerFunc(httpTraceHdrs(server.ReadVersionHandler)). Queries(restQueries(storageRESTVolume, storageRESTFilePath, storageRESTVersionID)...) subrouter.Methods(http.MethodPost).Path(storageRESTVersionPrefix + storageRESTMethodRenameData).HandlerFunc(httpTraceHdrs(server.RenameDataHandler)).