Allow blank filenames in Content-Disposition field#792
Closed
robinroestenburg wants to merge 2 commits into
Closed
Allow blank filenames in Content-Disposition field#792robinroestenburg wants to merge 2 commits into
robinroestenburg wants to merge 2 commits into
Conversation
Contributor
Author
|
Added some specs as well. I copied some specs from the ContentTypeField specs, as the implementation should be the same (imo). Note:
|
Contributor
|
empty filenames could create more problems down the line when for example trying to store things ... return filename if filename.present?
if self['Content-Disposition'].to_s.split(";").first == "attachment" ||
(type && type.split("/").first != "text") ||
type == 'text/calendar'
)
generated_attachment_name
end |
|
Empty filenames could create problems for mail consumers, but that is unfortunately not mail's concern, if the email says the filename is I do agree that the implementation of find_attachment is incorrect, we use code similar to yours. I think a separate pull request is needed to fix that up. |
Contributor
|
thx for merging/fixing all these issues @jeremy ! ❤️ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Attachments containing an empty string as a filename in the Content-Disposition header are skipped.
This was introduced as a side-effect of commit b1b1796.
Take, for example, the following Content-Disposition header:
Prior to that commit the parameters in the ContentDispositionField class would return:
After the commit the following is returned:
This is correct, but the code returning the filename from the ContentDispositionField class checks on
!blank?. Which would return true before, and now returns false.This would result in
Message#find_attachmentnot decoding the attachment because nil instead of "" is returned.For this PR I made the
ContentDispositionField#filenameimplementation match the one inContentTypeField#filename.