Open
Description
Hi, I'm developing a fuzzer to test the safe abstraction, and I fonnd a panic bug when calling function has()
. Bellow is a test case:
#[allow(warnings, unused, non_snake_case)]
#[test]
fn test_has_3lk9v() {
let capability = String::from("\0:");
let _ = has(capability.as_str());
}
Output:
thread 'test_has_3lk9v' panicked at src/lib.rs:1203:47:
called `Result::unwrap()` on an `Err` value: NulError(0, [0, 58])
stack backtrace:
0: rust_begin_unwind
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/std/src/panicking.rs:652:5
1: core::panicking::panic_fmt
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/core/src/panicking.rs:72:14
2: core::result::unwrap_failed
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/core/src/result.rs:1658:5
3: core::result::Result<T,E>::unwrap
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/core/src/result.rs:1081:23
4: zmq::has
at ./src/lib.rs:1203:17
5: zmq::test_has_3lk9v
at ./src/lib.rs:1367:13
6: zmq::test_has_3lk9v::{{closure}}
at ./src/lib.rs:1354:20
7: core::ops::function::FnOnce::call_once
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/core/src/ops/function.rs:250:5
8: core::ops::function::FnOnce::call_once
at /rustc/d84b9037541f45dc2c52a41d723265af211c0497/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
I think checking that &str
is legal before calling ffi::CString
would make the API more robust.
Metadata
Metadata
Assignees
Labels
No labels