diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-04-14 23:10:32 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-04-14 23:10:32 +0000 |
commit | 04b086dd08cd492e1860d23845334786b16d9154 (patch) | |
tree | 27dac1ad03dc807ed2459fb462dc91e927c6dfd0 /biometrics | |
parent | 007d23e7cbb263eff45f4233bb90f93aff0f54ee (diff) | |
parent | d7e9b0fdc7e2c461973e34568fbca8f5bd0c0373 (diff) | |
download | android_hardware_interfaces-04b086dd08cd492e1860d23845334786b16d9154.tar.gz android_hardware_interfaces-04b086dd08cd492e1860d23845334786b16d9154.tar.bz2 android_hardware_interfaces-04b086dd08cd492e1860d23845334786b16d9154.zip |
Merge "setActiveGroup null, 0 length, unwritable dir should fail" into oc-dev
Diffstat (limited to 'biometrics')
-rw-r--r-- | biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp | 6 | ||||
-rw-r--r-- | biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp index 7ba84bdf9..16197d793 100644 --- a/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp +++ b/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp @@ -23,6 +23,7 @@ #include "BiometricsFingerprint.h" #include <inttypes.h> +#include <unistd.h> namespace android { namespace hardware { @@ -187,7 +188,12 @@ Return<RequestStatus> BiometricsFingerprint::setActiveGroup(uint32_t gid, const hidl_string& storePath) { if (storePath.size() >= PATH_MAX || storePath.size() <= 0) { ALOGE("Bad path length: %zd", storePath.size()); + return RequestStatus::SYS_EINVAL; } + if (access(storePath.c_str(), W_OK)) { + return RequestStatus::SYS_EINVAL; + } + return ErrorFilter(mDevice->set_active_group(mDevice, gid, storePath.c_str())); } diff --git a/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp b/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp index d3f66126d..29776b414 100644 --- a/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp +++ b/biometrics/fingerprint/2.1/vts/functional/VtsHalBiometricsFingerprintV2_1TargetTest.cpp @@ -43,7 +43,7 @@ namespace { static const uint32_t kTimeout = 3; static const std::chrono::seconds kTimeoutInSeconds = std::chrono::seconds(kTimeout); static const uint32_t kGroupId = 99; -static const std::string kTmpDir = "/data/local/tmp/"; +static const std::string kTmpDir = "/data/system/"; static const uint32_t kIterations = 1000; // Wait for a callback to occur (signaled by the given future) up to the @@ -186,6 +186,8 @@ class FingerprintHidlTest : public ::testing::VtsHalHidlTargetTestBase { ASSERT_FALSE(mService == nullptr); // Create an active group + // FP service can only write to /data/system due to + // SELinux Policy and Linux Dir Permissions Return<RequestStatus> res = mService->setActiveGroup(kGroupId, kTmpDir); ASSERT_EQ(RequestStatus::SYS_OK, static_cast<RequestStatus>(res)); } |