diff options
| author | 2019-10-10 16:12:18 -0700 | |
|---|---|---|
| committer | 2019-10-11 12:50:26 -0700 | |
| commit | 12b4d480768e1ad0b80c99b02a23d31096818cfa (patch) | |
| tree | ad2c98dec4f4adb7d7a8a260b0cd350f4d8011a9 | |
| parent | 561e2861dff5d61b69855cc56072db99624148d8 (diff) | |
Clean up: use ScopedUtfChars for consistency
Also fix indents.
Test: atest com.android.apkverity.ApkVerityTest
Bug: 142504243
Change-Id: I3b7116650aebaa6f921ac04d033a6521554f7298
| -rw-r--r-- | services/core/jni/com_android_server_security_VerityUtils.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/services/core/jni/com_android_server_security_VerityUtils.cpp b/services/core/jni/com_android_server_security_VerityUtils.cpp index 3f165af007ba..906b5688d51f 100644 --- a/services/core/jni/com_android_server_security_VerityUtils.cpp +++ b/services/core/jni/com_android_server_security_VerityUtils.cpp @@ -18,6 +18,7 @@ #include <nativehelper/JNIHelp.h> #include <nativehelper/ScopedPrimitiveArray.h> +#include <nativehelper/ScopedUtfChars.h> #include "jni.h" #include <utils/Log.h> @@ -73,11 +74,13 @@ namespace android { namespace { int enableFsverity(JNIEnv* env, jobject /* clazz */, jstring filePath, jbyteArray signature) { - const char* path = env->GetStringUTFChars(filePath, nullptr); - ::android::base::unique_fd rfd(open(path, O_RDONLY | O_CLOEXEC)); - env->ReleaseStringUTFChars(filePath, path); + ScopedUtfChars path(env, filePath); + if (path.c_str() == nullptr) { + return EINVAL; + } + ::android::base::unique_fd rfd(open(path.c_str(), O_RDONLY | O_CLOEXEC)); if (rfd.get() < 0) { - return errno; + return errno; } ScopedByteArrayRO signature_bytes(env, signature); if (signature_bytes.get() == nullptr) { @@ -94,7 +97,7 @@ int enableFsverity(JNIEnv* env, jobject /* clazz */, jstring filePath, jbyteArra arg.sig_ptr = reinterpret_cast<uintptr_t>(signature_bytes.get()); if (ioctl(rfd.get(), FS_IOC_ENABLE_VERITY, &arg) < 0) { - return errno; + return errno; } return 0; } @@ -106,14 +109,16 @@ int measureFsverity(JNIEnv* env, jobject /* clazz */, jstring filePath) { fsverity_digest *data = reinterpret_cast<fsverity_digest *>(&bytes); data->digest_size = kSha256Bytes; // the only input/output parameter - const char* path = env->GetStringUTFChars(filePath, nullptr); - ::android::base::unique_fd rfd(open(path, O_RDONLY | O_CLOEXEC)); - env->ReleaseStringUTFChars(filePath, path); + ScopedUtfChars path(env, filePath); + if (path.c_str() == nullptr) { + return EINVAL; + } + ::android::base::unique_fd rfd(open(path.c_str(), O_RDONLY | O_CLOEXEC)); if (rfd.get() < 0) { - return errno; + return errno; } if (ioctl(rfd.get(), FS_IOC_MEASURE_VERITY, data) < 0) { - return errno; + return errno; } return 0; } |