From ecc11e4cbfc30e446db50de42d79b3ff5b4f19de Mon Sep 17 00:00:00 2001 From: Chris W Date: Sat, 13 Jan 2024 20:05:14 -0700 Subject: [PATCH] hopefully fix issues with empty extension --- src/controllers/paste_controller.cr | 3 ++- src/models/paste.cr | 4 ++-- src/services/utils_service.cr | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/controllers/paste_controller.cr b/src/controllers/paste_controller.cr index 60539da..d1003cc 100644 --- a/src/controllers/paste_controller.cr +++ b/src/controllers/paste_controller.cr @@ -136,7 +136,8 @@ module Paste69 end if form.has_key?("file") - filename, body = form["file"] + _filename, body = form["file"] + _, filename = form["filename"] || {nil, _filename} @utils.store_file( body, content_type, diff --git a/src/models/paste.cr b/src/models/paste.cr index c930438..2dfd16f 100644 --- a/src/models/paste.cr +++ b/src/models/paste.cr @@ -91,13 +91,13 @@ module Paste69 # Also generate a new management token paste.mgmt_token = Random.new.urlsafe_base64(config.get("storage.secret_bytes").as_i) - - is_updated = true else # The file already exists, update the expiration as needed paste.expiration = [paste.expiration!, expiration].max.to_i64 is_new = false end + + is_updated = true else mime = utils.get_mime(data, filename) ext = utils.get_ext(mime, filename) diff --git a/src/services/utils_service.cr b/src/services/utils_service.cr index 6983acf..18ef5cb 100644 --- a/src/services/utils_service.cr +++ b/src/services/utils_service.cr @@ -125,11 +125,11 @@ module Paste69 gmime = mime.split(";")[0] guess = MIME.extensions(gmime).first? - if !ext + if !ext || ext.empty? override = @config.get("storage.ext_override").as_h if gmime.in?(override) ext = override[gmime].as_s - elsif guess + elsif guess && !guess.empty? ext = guess else ext = ".bin"