Skip to content
This repository has been archived by the owner on Nov 22, 2024. It is now read-only.

Attachments with longs names are not being processed #29

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.

@gsteel
Copy link
Member

gsteel commented Nov 22, 2024

@gsteel gsteel closed this Nov 22, 2024
@gsteel gsteel removed this from the 2.9.2 milestone Nov 22, 2024
@gsteel gsteel added the Won't Fix This will not be worked on label Nov 22, 2024
@gsteel gsteel self-assigned this Nov 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Awaiting Author Updates Bug Something isn't working Unit Test Needed Won't Fix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants