@@ -261,31 +261,36 @@ macro_rules! execve_test_factory(
261
261
262
262
#[ cfg( test) ]
263
263
mod $test_name {
264
+ use std:: ffi:: CStr ;
264
265
use super :: * ;
265
266
267
+ const EMPTY : & ' static [ u8 ] = b"\0 " ;
268
+ const DASH_C : & ' static [ u8 ] = b"-c\0 " ;
269
+ const BIGARG : & ' static [ u8 ] = b"echo nix!!! && echo foo=$foo && echo baz=$baz\0 " ;
270
+ const FOO : & ' static [ u8 ] = b"foo=bar\0 " ;
271
+ const BAZ : & ' static [ u8 ] = b"baz=quux\0 " ;
272
+
266
273
fn syscall_cstr_ref( ) -> Result <std:: convert:: Infallible , nix:: Error > {
267
274
$syscall(
268
275
$exe,
269
276
$( CString :: new( $pathname) . unwrap( ) . as_c_str( ) , ) *
270
- & [ CString :: new( b"" . as_ref( ) ) . unwrap( ) . as_c_str( ) ,
271
- CString :: new( b"-c" . as_ref( ) ) . unwrap( ) . as_c_str( ) ,
272
- CString :: new( b"echo nix!!! && echo foo=$foo && echo baz=$baz"
273
- . as_ref( ) ) . unwrap( ) . as_c_str( ) ] ,
274
- & [ CString :: new( b"foo=bar" . as_ref( ) ) . unwrap( ) . as_c_str( ) ,
275
- CString :: new( b"baz=quux" . as_ref( ) ) . unwrap( ) . as_c_str( ) ]
277
+ & [ CStr :: from_bytes_with_nul( EMPTY ) . unwrap( ) ,
278
+ CStr :: from_bytes_with_nul( DASH_C ) . unwrap( ) ,
279
+ CStr :: from_bytes_with_nul( BIGARG ) . unwrap( ) ] ,
280
+ & [ CStr :: from_bytes_with_nul( FOO ) . unwrap( ) ,
281
+ CStr :: from_bytes_with_nul( BAZ ) . unwrap( ) ]
276
282
$( , $flags) * )
277
283
}
278
284
279
285
fn syscall_cstring( ) -> Result <std:: convert:: Infallible , nix:: Error > {
280
286
$syscall(
281
287
$exe,
282
288
$( CString :: new( $pathname) . unwrap( ) . as_c_str( ) , ) *
283
- & [ CString :: new( b"" . as_ref( ) ) . unwrap( ) ,
284
- CString :: new( b"-c" . as_ref( ) ) . unwrap( ) ,
285
- CString :: new( b"echo nix!!! && echo foo=$foo && echo baz=$baz"
286
- . as_ref( ) ) . unwrap( ) ] ,
287
- & [ CString :: new( b"foo=bar" . as_ref( ) ) . unwrap( ) ,
288
- CString :: new( b"baz=quux" . as_ref( ) ) . unwrap( ) ]
289
+ & [ CString :: from( CStr :: from_bytes_with_nul( EMPTY ) . unwrap( ) ) ,
290
+ CString :: from( CStr :: from_bytes_with_nul( DASH_C ) . unwrap( ) ) ,
291
+ CString :: from( CStr :: from_bytes_with_nul( BIGARG ) . unwrap( ) ) ] ,
292
+ & [ CString :: from( CStr :: from_bytes_with_nul( FOO ) . unwrap( ) ) ,
293
+ CString :: from( CStr :: from_bytes_with_nul( BAZ ) . unwrap( ) ) ]
289
294
$( , $flags) * )
290
295
}
291
296
0 commit comments