-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Description
What version of Go are you using (go version)?
1.12 and now 1.11.6
We have two projects (Consul and Vault) that implement a K/V store with path-based URLs. As Go didn't check for control characters in previous releases we have some users that ended up writing keys at locations with various control characters due to bad key/path generation code.
We implemented a check ourselves to filter such paths out but for those users that needed to be able to access data they'd already written the check could be turned off. With Go 1.12 out we've been trying to figure out a decent way to work around the fact that these paths now throw errors from within Go. It's not trivial given that the key is used for things like AEAD tag data.
Unfortunately the updates in Go 1.12 and now 1.11.6 mean our current plan of sticking with the 1.11.x series until we have sorted something out isn't viable, and we still don't have a good option going forward anyways.
I realize that due to the security nature of the previous behavior golang's backwards compatibility promise doesn't apply. However, it would still be very nice if those of us that need to be able to control this behavior for backwards compatibility reasons had a way to do so. I'm happy to work up a patch if it's likely to be accepted.
Pinging @bradfitz