remote_server: Remove unnecessary Box, prevent time-of-check time-of-use bug (#24730)
The MultiWrite struct is defined in the function scope and is allowed to have a concrete type, which means we can throw away the extra Box. PathBuf::exists is known to be prone to invalid usage. It doesn't take into account permissions errors and just returns false, additionally it introduces a time-of-check time-of-use bug. While extremely unlikely, why not fix it anyway. Release Notes: - remove unnecessary Box - prevent time-of-check time-of-use bug
This commit is contained in:
parent
21a1541a70
commit
5d634245a2
1 changed files with 6 additions and 9 deletions
|
@ -59,7 +59,7 @@ fn init_logging_proxy() {
|
|||
|
||||
fn init_logging_server(log_file_path: PathBuf) -> Result<Receiver<Vec<u8>>> {
|
||||
struct MultiWrite {
|
||||
file: Box<dyn std::io::Write + Send + 'static>,
|
||||
file: std::fs::File,
|
||||
channel: Sender<Vec<u8>>,
|
||||
buffer: Vec<u8>,
|
||||
}
|
||||
|
@ -80,14 +80,11 @@ fn init_logging_server(log_file_path: PathBuf) -> Result<Receiver<Vec<u8>>> {
|
|||
}
|
||||
}
|
||||
|
||||
let log_file = Box::new(if log_file_path.exists() {
|
||||
std::fs::OpenOptions::new()
|
||||
.append(true)
|
||||
.open(&log_file_path)
|
||||
.context("Failed to open log file in append mode")?
|
||||
} else {
|
||||
std::fs::File::create(&log_file_path).context("Failed to create log file")?
|
||||
});
|
||||
let log_file = std::fs::OpenOptions::new()
|
||||
.create(true)
|
||||
.append(true)
|
||||
.open(&log_file_path)
|
||||
.context("Failed to open log file in append mode")?;
|
||||
|
||||
let (tx, rx) = smol::channel::unbounded();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue