From 12b4d480768e1ad0b80c99b02a23d31096818cfa Mon Sep 17 00:00:00 2001 From: Victor Hsieh Date: Thu, 10 Oct 2019 16:12:18 -0700 Subject: [PATCH] Clean up: use ScopedUtfChars for consistency Also fix indents. Test: atest com.android.apkverity.ApkVerityTest Bug: 142504243 Change-Id: I3b7116650aebaa6f921ac04d033a6521554f7298 --- ...om_android_server_security_VerityUtils.cpp | 25 +++++++++++-------- 1 file 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 3f165af007bac..906b5688d51fe 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 #include +#include #include "jni.h" #include @@ -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(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(&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; }