From 5a4d07b273607f0b5d96fb840be876add4927b5e Mon Sep 17 00:00:00 2001 From: sentriz Date: Wed, 22 Jan 2020 14:46:01 +0000 Subject: [PATCH] make playlist uploading a little more robust --- server/ctrladmin/playlist.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/ctrladmin/playlist.go b/server/ctrladmin/playlist.go index fd3d3fe..7855c01 100644 --- a/server/ctrladmin/playlist.go +++ b/server/ctrladmin/playlist.go @@ -45,6 +45,10 @@ func playlistParseUpload(c *Controller, userID int, header *multipart.FileHeader if playlistName == "" { return []string{fmt.Sprintf("invalid filename %q", header.Filename)}, false } + contentType := header.Header.Get("Content-Type") + if !(contentType == "audio/x-mpegurl" || contentType == "application/octet-stream") { + return []string{fmt.Sprintf("invalid content-type %q", contentType)}, false + } playlist := &model.Playlist{} c.DB.FirstOrCreate(playlist, model.Playlist{ Name: playlistName, @@ -56,7 +60,8 @@ func playlistParseUpload(c *Controller, userID int, header *multipart.FileHeader for scanner.Scan() { path := scanner.Text() if err := playlistParseLine(c, playlist.ID, path); err != nil { - errors = append(errors, err.Error()) + // trim length of error to not overflow cookie flash + errors = append(errors, fmt.Sprintf("%.100s", err.Error())) } } if err := scanner.Err(); err != nil {