From 854307e0139c209390eebd1ee1fc4ba671e9ecfb Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 14 May 2026 15:36:40 +0200 Subject: [PATCH] dockerversion: touch-up escapeStr to mention RFC and add TODO Signed-off-by: Sebastiaan van Stijn --- dockerversion/useragent.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dockerversion/useragent.go b/dockerversion/useragent.go index 6d4fcc8571..98277b761f 100644 --- a/dockerversion/useragent.go +++ b/dockerversion/useragent.go @@ -88,13 +88,16 @@ func getUpstreamUserAgent(ctx context.Context) string { return "UpstreamClient(" + escapeStr(upstreamUA) + ")" } -// escapeStr escapes and sanitizes s for use in a User-Agent comment. +// escapeStr escapes and sanitizes s for use in a User-Agent comment ([RFC9110]). +// +// [RFC9110]: https://www.rfc-editor.org/rfc/rfc9110#section-10.1.5 func escapeStr(s string) string { var b strings.Builder b.Grow(len(s)) for i := range len(s) { switch c := s[i]; c { + // TODO(thaJeztah): remove redundant escaping semicolons; see https://github.com/moby/moby/pull/52356#discussion_r3234266285 case '(', ')', ';', '\\': b.WriteByte('\\') b.WriteByte(c)