Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attachments with longs names are not being processed #29

Open
wants to merge 1 commit into
base: 2.10.x
Choose a base branch
from

Conversation

Ralev93
Copy link

@Ralev93 Ralev93 commented Jun 13, 2022

Q A
Documentation no
Bugfix yes
BC Break no
New Feature no
RFC no
QA no

Bug Report

Q A
Version(s) 2.10.x

Summary

Attachments with filenames, longer than 76 char symbols, are not being processed.

Current behavior

Currently, Laminas\Mail successfully identifies long names and successfully splits them into multiple variables in \Laminas\Mail\Header\ContentDisposition::getFieldValue().
However, the multiple variables do not get recognized in Laminas\Mime\Decode::splitHeaderField() due to this check
strcasecmp($name, $wantedPart)
i.e. it compares "filename*0" with "filename"

How to reproduce

Try to process an email with an attachment with long name, for example
"This_______________________________________________________is____________________long__________________________________name.txt"

Expected behavior

It should not compare with strcasecmp, but rather with a regex. Then if it is a multiple value, it should concatenate the values

Currently, Laminas\Mail successfully identifies filenames longer than 78 chars (RFC 2822) and successfully splits them into multiple variables in \Laminas\Mail\Header\ContentDisposition::getFieldValue().
However, the multiple variables do not get recognized in Laminas\Mime\Decode::splitHeaderField() due to this check
strcasecmp($name, $wantedPart)
i.e. it compares "filename*0" with "filename".

To reproduce, try to process an email with an attachment with long name, for example
"This_______________________________________________________is____________________long__________________________________name.txt"

Signed-off-by: Ralev93 <[email protected]>
Copy link
Member

@Ocramius Ocramius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requires test case additions: also, please check CI failures :-)

@Ocramius Ocramius added this to the 2.9.2 milestone Jun 13, 2022
@Ocramius
Copy link
Member

@Ralev93 I think this should go against 2.9.x, as a bugfix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants