fmtsafe: allow string(RedactableString) as safe arg#70979
Closed
tbg wants to merge 1 commit intocockroachdb:masterfrom
Closed
fmtsafe: allow string(RedactableString) as safe arg#70979tbg wants to merge 1 commit intocockroachdb:masterfrom
tbg wants to merge 1 commit intocockroachdb:masterfrom
Conversation
It's safe to use a RedactableString as a format argument instead of a constant string. This teaches the linter that. Release note: None
Member
knz
reviewed
Oct 2, 2021
Contributor
knz
left a comment
There was a problem hiding this comment.
This does not seem correct. Say, I have this:
f := redact.SafeString("‹%s seecret›")
s := redact.Sprintf("abc") // s == "‹abc›"
out := redact.Sprintf(s, f) // out == "‹‹abc› seecret›"The linter is really there to preserve the invariant that the format string is a literal constant:
- either it is actually a literal constant
- or it forwarding an incoming format parameter, which recursively is provably a literal constant
If there's one thing missing, is that we should probably assert that the literal string constant does not contain redaction markers. but allowing the format to be hidden via a variable doesn't seem to be the right way to go?
Reviewable status:
complete! 0 of 0 LGTMs obtained
knz
reviewed
Oct 2, 2021
Contributor
knz
left a comment
There was a problem hiding this comment.
(I meant fmt.Sprintf(f, s) in the example but the remainder of the argument remains the same)
Reviewable status:
complete! 0 of 0 LGTMs obtained
Member
Author
|
You're right, let's solve the original problem in a different way. (And there is no rush on doing so). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It's safe to use a RedactableString as a format argument instead
of a constant string. This teaches the linter that.
Needed for #70485
Release note: None