fixed segfault
This commit is contained in:
parent
427403aa74
commit
0b191bb4fa
12
src/lib.rs
12
src/lib.rs
|
@ -75,7 +75,6 @@ pub use args::Args;
|
|||
|
||||
use libc::{
|
||||
c_int,
|
||||
printf,
|
||||
strlen,
|
||||
};
|
||||
|
||||
|
@ -114,15 +113,15 @@ extern "Rust" {
|
|||
#[no_mangle]
|
||||
pub unsafe extern fn main(argc: c_int, argv: *const *const u8) -> c_int {
|
||||
match Args::new(argc as isize, argv) {
|
||||
Ok(arguments) => {
|
||||
let argv0 = &arguments
|
||||
Ok(args) => {
|
||||
let argv0 = &args
|
||||
.into_iter()
|
||||
.next()
|
||||
.unwrap_or_else(|| {
|
||||
printf("Unable to ascertain argv[0].\n\0".as_ptr() as _);
|
||||
libc::exit(71);
|
||||
libc_eprintln!("Unable to ascertain argv[0].");
|
||||
exit(71);
|
||||
});
|
||||
rust_main(arguments).unwrap_or_else(|(err, code)| {
|
||||
rust_main(args).unwrap_or_else(|(err, code)| {
|
||||
libc_eprintln!("{}: {}", argv0, err);
|
||||
code
|
||||
}) as _
|
||||
|
@ -133,4 +132,3 @@ pub unsafe extern fn main(argc: c_int, argv: *const *const u8) -> c_int {
|
|||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Reference in New Issue