1
1
use crate :: fmt;
2
- use crate :: io:: { self , Error , ErrorKind } ;
2
+ use crate :: io:: { self , Error } ;
3
3
use crate :: mem;
4
4
use crate :: num:: NonZero ;
5
5
use crate :: sys;
@@ -66,12 +66,7 @@ impl Command {
66
66
67
67
let envp = self . capture_env ( ) ;
68
68
69
- if self . saw_nul ( ) {
70
- return Err ( io:: const_io_error!(
71
- ErrorKind :: InvalidInput ,
72
- "nul byte found in provided data" ,
73
- ) ) ;
74
- }
69
+ self . validate_input ( ) ?;
75
70
76
71
let ( ours, theirs) = self . setup_io ( default, needs_stdin) ?;
77
72
@@ -182,7 +177,7 @@ impl Command {
182
177
// way to avoid that all-together.
183
178
#[ cfg( any( target_os = "tvos" , target_os = "watchos" ) ) ]
184
179
const ERR_APPLE_TV_WATCH_NO_FORK_EXEC : Error = io:: const_io_error!(
185
- ErrorKind :: Unsupported ,
180
+ io :: ErrorKind :: Unsupported ,
186
181
"`fork`+`exec`-based process spawning is not supported on this target" ,
187
182
) ;
188
183
@@ -223,7 +218,7 @@ impl Command {
223
218
thread:: sleep ( delay) ;
224
219
} else {
225
220
return Err ( io:: const_io_error!(
226
- ErrorKind :: WouldBlock ,
221
+ io :: ErrorKind :: WouldBlock ,
227
222
"forking returned EBADF too often" ,
228
223
) ) ;
229
224
}
@@ -238,8 +233,8 @@ impl Command {
238
233
pub fn exec ( & mut self , default : Stdio ) -> io:: Error {
239
234
let envp = self . capture_env ( ) ;
240
235
241
- if self . saw_nul ( ) {
242
- return io :: const_io_error! ( ErrorKind :: InvalidInput , "nul byte found in provided data" , ) ;
236
+ if let Err ( err ) = self . validate_input ( ) {
237
+ return err ;
243
238
}
244
239
245
240
match self . setup_io ( default, true ) {
@@ -499,7 +494,7 @@ impl Command {
499
494
thread:: sleep ( delay) ;
500
495
} else {
501
496
return Err ( io:: const_io_error!(
502
- ErrorKind :: WouldBlock ,
497
+ io :: ErrorKind :: WouldBlock ,
503
498
"posix_spawnp returned EBADF too often" ,
504
499
) ) ;
505
500
}
@@ -1111,14 +1106,14 @@ impl crate::os::linux::process::ChildExt for crate::process::Child {
1111
1106
self . handle
1112
1107
. pidfd
1113
1108
. as_ref ( )
1114
- . ok_or_else ( || Error :: new ( ErrorKind :: Uncategorized , "No pidfd was created." ) )
1109
+ . ok_or_else ( || Error :: new ( io :: ErrorKind :: Uncategorized , "No pidfd was created." ) )
1115
1110
}
1116
1111
1117
1112
fn take_pidfd ( & mut self ) -> io:: Result < PidFd > {
1118
1113
self . handle
1119
1114
. pidfd
1120
1115
. take ( )
1121
- . ok_or_else ( || Error :: new ( ErrorKind :: Uncategorized , "No pidfd was created." ) )
1116
+ . ok_or_else ( || Error :: new ( io :: ErrorKind :: Uncategorized , "No pidfd was created." ) )
1122
1117
}
1123
1118
}
1124
1119
0 commit comments