Skip to content

Commit b35b4e6

Browse files
authored
Remove atty and tracing-tree, update hermit-abi (rust-lang#2581)
This removes dependency on atty, and tracing-tree (which depends on atty). This is in response to this security advisory: https://rustsec.org/advisories/RUSTSEC-2021-0145 atty is removed by switching to std::io::IsTerminal. tracing-tree is removed by replacing HierarchicalLayer with a regular tracing_subscriber::fmt::layer that directs to stderr. The PR also updates hermit-abi to 0.3.2 from 0.3.1, in response to 0.3.1 being yanked. This PR resolves rust-lang#2580.
1 parent 7139063 commit b35b4e6

File tree

6 files changed

+30
-83
lines changed

6 files changed

+30
-83
lines changed

Cargo.lock

Lines changed: 20 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,6 @@ version = "1.0.71"
8787
source = "registry+https://github.com/rust-lang/crates.io-index"
8888
checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
8989

90-
[[package]]
91-
name = "atty"
92-
version = "0.2.14"
93-
source = "registry+https://github.com/rust-lang/crates.io-index"
94-
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
95-
dependencies = [
96-
"hermit-abi 0.1.19",
97-
"libc",
98-
"winapi",
99-
]
100-
10190
[[package]]
10291
name = "autocfg"
10392
version = "1.1.0"
@@ -110,6 +99,12 @@ version = "1.3.2"
11099
source = "registry+https://github.com/rust-lang/crates.io-index"
111100
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
112101

102+
[[package]]
103+
name = "bitflags"
104+
version = "2.3.3"
105+
source = "registry+https://github.com/rust-lang/crates.io-index"
106+
checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
107+
113108
[[package]]
114109
name = "bookrunner"
115110
version = "0.1.0"
@@ -196,7 +191,7 @@ checksum = "9a78fbdd3cc2914ddf37ba444114bc7765bbdcb55ec9cbe6fa054f0137400717"
196191
dependencies = [
197192
"anstream",
198193
"anstyle",
199-
"bitflags",
194+
"bitflags 1.3.2",
200195
"clap_lex",
201196
"once_cell",
202197
"strsim",
@@ -332,7 +327,7 @@ version = "0.26.1"
332327
source = "registry+https://github.com/rust-lang/crates.io-index"
333328
checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
334329
dependencies = [
335-
"bitflags",
330+
"bitflags 1.3.2",
336331
"crossterm_winapi",
337332
"libc",
338333
"mio",
@@ -437,15 +432,6 @@ version = "0.4.1"
437432
source = "registry+https://github.com/rust-lang/crates.io-index"
438433
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
439434

440-
[[package]]
441-
name = "hermit-abi"
442-
version = "0.1.19"
443-
source = "registry+https://github.com/rust-lang/crates.io-index"
444-
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
445-
dependencies = [
446-
"libc",
447-
]
448-
449435
[[package]]
450436
name = "hermit-abi"
451437
version = "0.2.6"
@@ -457,9 +443,9 @@ dependencies = [
457443

458444
[[package]]
459445
name = "hermit-abi"
460-
version = "0.3.1"
446+
version = "0.3.2"
461447
source = "registry+https://github.com/rust-lang/crates.io-index"
462-
checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
448+
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
463449

464450
[[package]]
465451
name = "home"
@@ -480,25 +466,13 @@ dependencies = [
480466
"hashbrown 0.14.0",
481467
]
482468

483-
[[package]]
484-
name = "io-lifetimes"
485-
version = "1.0.11"
486-
source = "registry+https://github.com/rust-lang/crates.io-index"
487-
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
488-
dependencies = [
489-
"hermit-abi 0.3.1",
490-
"libc",
491-
"windows-sys 0.48.0",
492-
]
493-
494469
[[package]]
495470
name = "is-terminal"
496-
version = "0.4.7"
471+
version = "0.4.8"
497472
source = "registry+https://github.com/rust-lang/crates.io-index"
498-
checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
473+
checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
499474
dependencies = [
500-
"hermit-abi 0.3.1",
501-
"io-lifetimes",
475+
"hermit-abi 0.3.2",
502476
"rustix",
503477
"windows-sys 0.48.0",
504478
]
@@ -529,7 +503,6 @@ dependencies = [
529503
name = "kani-compiler"
530504
version = "0.31.0"
531505
dependencies = [
532-
"atty",
533506
"clap",
534507
"cprover_bindings",
535508
"home",
@@ -545,15 +518,13 @@ dependencies = [
545518
"strum_macros",
546519
"tracing",
547520
"tracing-subscriber",
548-
"tracing-tree",
549521
]
550522

551523
[[package]]
552524
name = "kani-driver"
553525
version = "0.31.0"
554526
dependencies = [
555527
"anyhow",
556-
"atty",
557528
"cargo_metadata",
558529
"clap",
559530
"comfy-table",
@@ -573,7 +544,6 @@ dependencies = [
573544
"toml",
574545
"tracing",
575546
"tracing-subscriber",
576-
"tracing-tree",
577547
"which",
578548
]
579549

@@ -630,9 +600,9 @@ dependencies = [
630600

631601
[[package]]
632602
name = "linux-raw-sys"
633-
version = "0.3.8"
603+
version = "0.4.3"
634604
source = "registry+https://github.com/rust-lang/crates.io-index"
635-
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
605+
checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
636606

637607
[[package]]
638608
name = "lock_api"
@@ -890,7 +860,7 @@ version = "0.9.3"
890860
source = "registry+https://github.com/rust-lang/crates.io-index"
891861
checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
892862
dependencies = [
893-
"bitflags",
863+
"bitflags 1.3.2",
894864
"memchr",
895865
"unicase",
896866
]
@@ -962,7 +932,7 @@ version = "0.3.5"
962932
source = "registry+https://github.com/rust-lang/crates.io-index"
963933
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
964934
dependencies = [
965-
"bitflags",
935+
"bitflags 1.3.2",
966936
]
967937

968938
[[package]]
@@ -1012,13 +982,12 @@ dependencies = [
1012982

1013983
[[package]]
1014984
name = "rustix"
1015-
version = "0.37.20"
985+
version = "0.38.2"
1016986
source = "registry+https://github.com/rust-lang/crates.io-index"
1017-
checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0"
987+
checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4"
1018988
dependencies = [
1019-
"bitflags",
989+
"bitflags 2.3.3",
1020990
"errno",
1021-
"io-lifetimes",
1022991
"libc",
1023992
"linux-raw-sys",
1024993
"windows-sys 0.48.0",
@@ -1378,19 +1347,6 @@ dependencies = [
13781347
"tracing-serde",
13791348
]
13801349

1381-
[[package]]
1382-
name = "tracing-tree"
1383-
version = "0.2.3"
1384-
source = "registry+https://github.com/rust-lang/crates.io-index"
1385-
checksum = "4f9742d8df709837409dbb22aa25dd7769c260406f20ff48a2320b80a4a6aed0"
1386-
dependencies = [
1387-
"atty",
1388-
"nu-ansi-term",
1389-
"tracing-core",
1390-
"tracing-log",
1391-
"tracing-subscriber",
1392-
]
1393-
13941350
[[package]]
13951351
name = "unicase"
13961352
version = "2.6.0"

kani-compiler/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ license = "MIT OR Apache-2.0"
99
publish = false
1010

1111
[dependencies]
12-
atty = "0.2.14"
1312
cbmc = { path = "../cprover_bindings", package = "cprover_bindings", optional = true }
1413
clap = { version = "4.1.3", features = ["cargo"] }
1514
home = "0.5"
@@ -25,7 +24,6 @@ strum_macros = "0.24.0"
2524
shell-words = "1.0.0"
2625
tracing = {version = "0.1", features = ["max_level_trace", "release_max_level_debug"]}
2726
tracing-subscriber = {version = "0.3.8", features = ["env-filter", "json", "fmt"]}
28-
tracing-tree = "0.2.2"
2927

3028
# Future proofing: enable backend dependencies using feature.
3129
[features]

kani-compiler/src/session.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ use rustc_errors::{
99
emitter::Emitter, emitter::HumanReadableErrorType, fallback_fluent_bundle, json::JsonEmitter,
1010
ColorConfig, Diagnostic, TerminalUrl,
1111
};
12+
use std::io::IsTerminal;
1213
use std::panic;
1314
use std::str::FromStr;
1415
use std::sync::LazyLock;
1516
use tracing_subscriber::{filter::Directive, layer::SubscriberExt, EnvFilter, Registry};
16-
use tracing_tree::HierarchicalLayer;
1717

1818
/// Environment variable used to control this session log tracing.
1919
const LOG_ENV_VAR: &str = "KANI_LOG";
@@ -107,16 +107,13 @@ fn json_logs(filter: EnvFilter) {
107107

108108
/// Configure global logger to use a hierarchical view.
109109
fn hier_logs(args: &ArgMatches, filter: EnvFilter) {
110-
let use_colors = atty::is(atty::Stream::Stdout) || args.get_flag(parser::COLOR_OUTPUT);
110+
let use_colors = std::io::stdout().is_terminal() || args.get_flag(parser::COLOR_OUTPUT);
111111
let subscriber = Registry::default().with(filter);
112112
let subscriber = subscriber.with(
113-
HierarchicalLayer::default()
113+
tracing_subscriber::fmt::layer()
114114
.with_writer(std::io::stderr)
115-
.with_indent_lines(true)
116115
.with_ansi(use_colors)
117-
.with_targets(true)
118-
.with_verbose_exit(true)
119-
.with_indent_amount(4),
116+
.with_target(true),
120117
);
121118
tracing::subscriber::set_global_default(subscriber).unwrap();
122119
}

kani-driver/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ publish = false
1515
kani_metadata = { path = "../kani_metadata" }
1616
cargo_metadata = "0.15.0"
1717
anyhow = "1"
18-
atty = "0.2.14"
1918
console = "0.15.1"
2019
once_cell = "1.13.0"
2120
serde = { version = "1", features = ["derive"] }
@@ -32,7 +31,6 @@ strum = {version = "0.24.0"}
3231
strum_macros = {version = "0.24.0"}
3332
tracing = {version = "0.1", features = ["max_level_trace", "release_max_level_debug"]}
3433
tracing-subscriber = {version = "0.3.8", features = ["env-filter", "json", "fmt"]}
35-
tracing-tree = "0.2.2"
3634
rand = "0.8"
3735
which = "4.4.0"
3836

kani-driver/src/call_cargo.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use std::ffi::{OsStr, OsString};
1414
use std::fmt::{self, Display};
1515
use std::fs::{self, File};
1616
use std::io::BufReader;
17+
use std::io::IsTerminal;
1718
use std::path::PathBuf;
1819
use std::process::Command;
1920
use tracing::{debug, trace};
@@ -180,7 +181,7 @@ impl KaniSession {
180181
/// Run cargo and collect any error found.
181182
/// We also collect the metadata file generated during compilation if any.
182183
fn run_cargo(&self, cargo_cmd: Command, target: &Target) -> Result<Option<Artifact>> {
183-
let support_color = atty::is(atty::Stream::Stdout);
184+
let support_color = std::io::stdout().is_terminal();
184185
let mut artifact = None;
185186
if let Some(mut cargo_process) = self.run_piped(cargo_cmd)? {
186187
let reader = BufReader::new(cargo_process.stdout.take().unwrap());

kani-driver/src/session.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::args::common::Verbosity;
55
use crate::args::VerificationArgs;
66
use crate::util::render_command;
77
use anyhow::{bail, Context, Result};
8+
use std::io::IsTerminal;
89
use std::io::Write;
910
use std::path::{Path, PathBuf};
1011
use std::process::{Child, Command, ExitStatus, Stdio};
@@ -13,7 +14,6 @@ use std::time::Instant;
1314
use strum_macros::Display;
1415
use tracing::level_filters::LevelFilter;
1516
use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry};
16-
use tracing_tree::HierarchicalLayer;
1717

1818
/// Environment variable used to control this session log tracing.
1919
/// This is the same variable used to control `kani-compiler` logs. Note that you can still control
@@ -368,16 +368,13 @@ fn init_logger(args: &VerificationArgs) {
368368
};
369369

370370
// Use a hierarchical view for now.
371-
let use_colors = atty::is(atty::Stream::Stdout);
371+
let use_colors = std::io::stdout().is_terminal();
372372
let subscriber = Registry::default().with(filter);
373373
let subscriber = subscriber.with(
374-
HierarchicalLayer::default()
374+
tracing_subscriber::fmt::layer()
375375
.with_writer(std::io::stderr)
376-
.with_indent_lines(true)
377376
.with_ansi(use_colors)
378-
.with_targets(true)
379-
.with_verbose_exit(true)
380-
.with_indent_amount(4),
377+
.with_target(true),
381378
);
382379
tracing::subscriber::set_global_default(subscriber).unwrap();
383380
}

0 commit comments

Comments
 (0)