Skip to content

Commit b3dae0a

Browse files
committed
allow leftover whitespace
1 parent c5d921a commit b3dae0a

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

web-server-lib/web-server/http/parse-content-disposition.rkt

+17-1
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194
(lambda (pf)
195195
(list 'parsefail (exn-message pf)))])
196196
(match (content-disposition-parser rhs)
197-
[(list matched #"")
197+
[(list matched (regexp #px#"^[[:space:]]*$" (list _)))
198198
(match matched
199199
[(list ty clauses)
200200
(list ty (for/list ([c (in-list clauses)])
@@ -249,6 +249,12 @@
249249
((#"name" #"abcz")
250250
(#"filename" #"abc\"d"))))
251251

252+
(check-equal?
253+
(parse-content-disposition-header
254+
#" attachment; filename=\"\\\\foo.html\"\n")
255+
'(#"attachment"
256+
((#"filename" #"\\foo.html"))))
257+
252258
(check-equal? (TOKEN #"form-data ;")
253259
(list #"form-data" #" ;"))
254260

@@ -284,6 +290,7 @@
284290
(check-equal? (QTDSTR #"\"filename=\"")
285291
(list '(quoted (#"filename=")) #""))
286292

293+
287294

288295
(check-equal?
289296
(content-disposition-parser
@@ -294,6 +301,15 @@
294301
(SEMI (#"filename" EQ (quoted (#"wallaby"))))))
295302
#""))
296303

304+
(check-equal?
305+
(content-disposition-parser
306+
#" form-data; name=\"filename=\"; zokbar=\"dingo\"; filename=\"wallaby\"")
307+
(list `(#"form-data"
308+
((SEMI (#"name" EQ (quoted (#"filename="))))
309+
(SEMI (#"zokbar" EQ (quoted (#"dingo"))))
310+
(SEMI (#"filename" EQ (quoted (#"wallaby"))))))
311+
#""))
312+
297313
(check-match
298314
(parse-content-disposition-header
299315
#"form-data; name=\"filen\"ame=\"; zokbar=\"dingo\"; filename=\"wallaby\"")

0 commit comments

Comments
 (0)