From 792b1ac11158718be53ca67805e24123bc93e7d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Tue, 26 Dec 2023 15:49:16 +0100 Subject: [PATCH] remove any temporary files associated with a Form, fixes #347. --- server/internal/http/http.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/internal/http/http.go b/server/internal/http/http.go index a013b42..ea50350 100644 --- a/server/internal/http/http.go +++ b/server/internal/http/http.go @@ -166,7 +166,13 @@ func New(conf *config.Server, webSocketHandler types.WebSocketHandler, desktop t return } - r.ParseMultipartForm(32 << 20) + err = r.ParseMultipartForm(32 << 20) + if err != nil || r.MultipartForm == nil { + logger.Warn().Err(err).Msg("failed to parse multipart form") + http.Error(w, "error parsing form", http.StatusBadRequest) + return + } + for _, formheader := range r.MultipartForm.File["files"] { filePath := webSocketHandler.FileTransferPath(formheader.Filename) @@ -187,6 +193,11 @@ func New(conf *config.Server, webSocketHandler types.WebSocketHandler, desktop t io.Copy(f, formfile) } + + err = r.MultipartForm.RemoveAll() + if err != nil { + logger.Warn().Err(err).Msg("failed to remove multipart form") + } }) }