0.3.0 (older version) Thoroughness: Medium Understanding: High
by MaulingMonkey on 2019-07-30
This review is from Crev, a distributed system for code reviews. To add your review, set up cargo-crev
.
The current version of jni-sys is 0.4.0.
0.3.0 (older version) Thoroughness: Medium Understanding: High
by MaulingMonkey on 2019-07-30
This review is from cargo-vet. To add your review, set up cargo-vet
and submit your URL to its registry.
The current version of jni-sys is 0.4.0.
0.3.0 (older version)
From kornelski/crev-proofs copy of git.savannah.gnu.org.
Packaged for Guix (crates-io)
cargo-vet does not verify reviewers' identity. You have to fully trust the source the audits are from.
May have been packaged automatically without a review
Lib.rs has been able to verify that all files in the crate's tarball are in the crate's repository with a git tag matching the version. Please note that this check is still in beta, and absence of this confirmation does not mean that the files don't match.
Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories, so there is a possibility that published crates have a misleading repository URL, or contain different code from the code in the repository.
To review the actual code of the crate, it's best to use cargo crev open jni-sys
. Alternatively, you can download the tarball of jni-sys v0.4.0 or view the source online.
Good solid FFI crate. Manual generation (I see comments!) concerns me, but upon review it looks to have been done correctly.
Verified all structs and FFI signatures against android JNI.h, with the exception of double checking that everything is marked JNICALL on windows JNI instead of just most of it. Android JNI lacks parameter names, so I didn't sanity check those either. Verified against %LOCALAPPDATA%\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\jni.h
Detail
src/lib.rs
Option<unsafe extern "system" fn(...) -> ...>
is FFI compatible with C function pointers, which might be a bad assumption.