mirror of https://github.com/pulumi/pulumi.git
82c546d873
Fix mangled diffs of strings containing url-encoded chars Currently, modifying a stack output that contains url-encoded characters can lead to it showing the value as `"!(NOVERB)"` or `"!(MISSING)"`. For example, changing a stack output `path` from `"%2F"` to `"%2f"` shows the diff as: ``` Outputs: ~ path: "%!(NOVERB)F" => "%!(NOVERB)f" ``` The expected diff output should be: ``` Outputs: ~ path: "%2F" => "%2f" ``` This is happening because the code that emits parts of the diff is expecting a format string. Go is trying to parse the `%` in the value as a format string and is having problems parsing it. The fix is to emit the parts of the diff verbatim, so it isn't treated as a format string. Fixes #16123 Note: I've done an audit of the other calls to `write` in `object_diff.go` and all the other call sites are passing actual format strings or constants. This was the only case where we were passing user input as a format string. |
||
---|---|---|
.. | ||
internal/terminal | ||
testdata | ||
diff.go | ||
diff_test.go | ||
display.go | ||
doc.go | ||
events.go | ||
events_test.go | ||
json.go | ||
jsonmessage.go | ||
object_diff.go | ||
object_diff_test.go | ||
options.go | ||
progress.go | ||
progress_test.go | ||
query.go | ||
rows.go | ||
sigint_unix.go | ||
sigint_windows.go | ||
tableutil.go | ||
tree.go | ||
tree_test.go | ||
watch.go |