Commit message:
net/textproto: escape arbitrary input when including them in errors
When returning errors, functions in the net/textproto package would
include its input as part of the error, without any escaping. Note that
said input is often controlled by external parties when using this
package naturally. For example, a net/http client uses ReadMIMEHeader
when parsing the headers it receive from a server.
As a result, an attacker could inject arbitrary content into the error.
Practically, this can result in an attacker injecting misleading
content, terminal control bytes, etc. into a victim's output or logs.
Fix this issue by making sure that ProtocolError usages within the
package are properly escaped, and that Error.String will escape its Msg.
Fixes #79346
Fixes CVE-2026-42507