mirror of
https://github.com/uutils/coreutils
synced 2025-01-19 00:24:13 +00:00
tests/common/util: Fix #3895 broken pipe error when using pipep input in UCommand
This commit is contained in:
parent
e860eb899e
commit
795ab1fb7e
1 changed files with 6 additions and 5 deletions
|
@ -17,7 +17,7 @@ use std::env;
|
|||
use std::ffi::CString;
|
||||
use std::ffi::OsStr;
|
||||
use std::fs::{self, hard_link, File, OpenOptions};
|
||||
use std::io::{Read, Result, Write};
|
||||
use std::io::{BufWriter, Read, Result, Write};
|
||||
#[cfg(unix)]
|
||||
use std::os::unix::fs::{symlink as symlink_dir, symlink as symlink_file};
|
||||
#[cfg(windows)]
|
||||
|
@ -1105,13 +1105,14 @@ impl UCommand {
|
|||
}
|
||||
|
||||
if let Some(ref input) = self.bytes_into_stdin {
|
||||
let write_result = child
|
||||
let child_stdin = child
|
||||
.stdin
|
||||
.take()
|
||||
.unwrap_or_else(|| panic!("Could not take child process stdin"))
|
||||
.write_all(input);
|
||||
.unwrap_or_else(|| panic!("Could not take child process stdin"));
|
||||
let mut writer = BufWriter::new(child_stdin);
|
||||
let result = writer.write_all(input);
|
||||
if !self.ignore_stdin_write_error {
|
||||
if let Err(e) = write_result {
|
||||
if let Err(e) = result {
|
||||
panic!("failed to write to stdin of child: {}", e);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue