diff options
| author | bors <bors@rust-lang.org> | 2021-11-01 07:14:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-11-01 07:14:16 +0000 |
| commit | 59eed8a2aac0230a8b53e89d4e99d55912ba6b35 (patch) | |
| tree | 4c5617dfb93a6e1cf6381c445e6a6ea3016bfb48 /src/test/ui/parser/unicode-control-codepoints.rs | |
| parent | 09c42c45858d5f3aedfa670698275303a3d19afa (diff) | |
| parent | 6552f7a75a4ee0f314ca5e87edc4c322d3f3eceb (diff) | |
| download | rust-1.56.1.tar.gz rust-1.56.1.zip | |
Auto merge of #90460 - pietroalbini:bidi-stable, r=nikomatsakis,pietroalbini 1.56.1
[stable] Fix CVE-2021-42574 and prepare Rust 1.56.1 This PR implements new lints to mitigate the impact of [CVE-2021-42574], caused by the presence of bidirectional-override Unicode codepoints in the compiled source code. [See the advisory][advisory] for more information about the vulnerability. The changes in this PR will be released later today as part of Rust 1.56.1. [CVE-2021-42574]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-42574 [advisory]: https://blog.rust-lang.org/2021/11/01/cve-2021-42574.html
Diffstat (limited to 'src/test/ui/parser/unicode-control-codepoints.rs')
| -rw-r--r-- | src/test/ui/parser/unicode-control-codepoints.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/test/ui/parser/unicode-control-codepoints.rs b/src/test/ui/parser/unicode-control-codepoints.rs new file mode 100644 index 00000000000..5af0b585a12 --- /dev/null +++ b/src/test/ui/parser/unicode-control-codepoints.rs @@ -0,0 +1,39 @@ +fn main() { + // if access_level != "user" { // Check if admin + //~^ ERROR unicode codepoint changing visible direction of text present in comment + println!("us\u{202B}e\u{202A}r"); + println!("{:?}", r#"us\u{202B}e\u{202A}r"#); + println!("{:?}", b"us\u{202B}e\u{202A}r"); + //~^ ERROR unicode escape in byte string + //~| ERROR unicode escape in byte string + println!("{:?}", br##"us\u{202B}e\u{202A}r"##); + + println!("{:?}", "/* } if isAdmin begin admins only "); + //~^ ERROR unicode codepoint changing visible direction of text present in literal + + println!("{:?}", r##"/* } if isAdmin begin admins only "##); + //~^ ERROR unicode codepoint changing visible direction of text present in literal + println!("{:?}", b"/* } if isAdmin begin admins only "); + //~^ ERROR non-ASCII character in byte constant + //~| ERROR non-ASCII character in byte constant + //~| ERROR non-ASCII character in byte constant + //~| ERROR non-ASCII character in byte constant + println!("{:?}", br##"/* } if isAdmin begin admins only "##); + //~^ ERROR raw byte string must be ASCII + //~| ERROR raw byte string must be ASCII + //~| ERROR raw byte string must be ASCII + //~| ERROR raw byte string must be ASCII + println!("{:?}", ''); + //~^ ERROR unicode codepoint changing visible direction of text present in literal +} + +//"/* } if isAdmin begin admins only */" +//~^ ERROR unicode codepoint changing visible direction of text present in comment + +/** ''); */fn foo() {} +//~^ ERROR unicode codepoint changing visible direction of text present in doc comment + +/** + * + * ''); */fn bar() {} +//~^^^ ERROR unicode codepoint changing visible direction of text present in doc comment |
