Kludex / python-multipart

A streaming multipart parser for Python.
https://multipart.fastapiexpert.com/
Other
316 stars 54 forks source link

Parsing fails if part header name contains a number #133

Closed jhnstrk closed 5 months ago

jhnstrk commented 6 months ago

When custom headers are included in parts, and those header names contain numbers, the multipart parser throws an exception:

Found non-alphanumeric character 49 in header at 92

Numbers are perfectly valid in header names and shouldn't be rejected.

Sample data to reproduce the issue (X-funky-header-1 triggers it):

b'''--b8825ae386be4fdc9644d87e392caad3\r\n
Content-Type: text/plain; charset=utf-8\r\n
X-funky-header-1: bar\r\n
Content-Length: 6\r\n
Content-Disposition: attachment; filename="secret.txt"; name="files"\r\n\r\n
aaaaaa\r\n
--b8825ae386be4fdc9644d87e392caad3--\r\n'''
Kludex commented 5 months ago