From c91a75c2c8778a9a8343c6bb4fa89eb1f978059f Mon Sep 17 00:00:00 2001 From: Julien Cretel Date: Mon, 10 Nov 2025 21:59:25 +0100 Subject: [PATCH] mime: parse media types that contain braces This CL fixes a bug introduced by CL 666655: isTokenChar would no longer (but should) report true for '{' and '}'. Fixes #76236 --- src/mime/grammar.go | 2 ++ src/mime/mediatype_test.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/mime/grammar.go b/src/mime/grammar.go index cc578fbcfd4168..1efd8a16dec607 100644 --- a/src/mime/grammar.go +++ b/src/mime/grammar.go @@ -62,7 +62,9 @@ func isTokenChar(c byte) bool { 1<<'^' | 1<<'_' | 1<<'`' | + 1<<'{' | 1<<'|' | + 1<<'}' | 1<<'~' return ((uint64(1)<>64)) != 0 diff --git a/src/mime/mediatype_test.go b/src/mime/mediatype_test.go index 251df8d6691ab9..da8d64de7a3f0c 100644 --- a/src/mime/mediatype_test.go +++ b/src/mime/mediatype_test.go @@ -413,6 +413,9 @@ func init() { // Issue #48866: duplicate parameters containing equal values should be allowed {`text; charset=utf-8; charset=utf-8; format=fixed`, "text", m("charset", "utf-8", "format", "fixed")}, {`text; charset=utf-8; format=flowed; charset=utf-8`, "text", m("charset", "utf-8", "format", "flowed")}, + + // Issue #76236: '{' and '}' are token chars. + {"attachment; filename={file}.png", "attachment", m("filename", "{file}.png")}, } }