diff options
| author | 2022-04-04 12:44:42 +0000 | |
|---|---|---|
| committer | 2022-04-04 12:44:42 +0000 | |
| commit | 2af771c3ba9c54a10b4c5cb4d0e77a928823173f (patch) | |
| tree | 5724ed32d63311f1490059f8e57973abc67bc1a4 | |
| parent | 9c5c944e25e0e9632b4985f159be897885937359 (diff) | |
| parent | af5e968482824e5b106f32d6460616880e2da181 (diff) | |
Merge "Check for IOCTL feature changed to not set inheritence"
| -rw-r--r-- | cmds/installd/InstalldNativeService.cpp | 2 | ||||
| -rw-r--r-- | cmds/installd/tests/installd_service_test.cpp | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp index b2a6ccff79..c95ee4109d 100644 --- a/cmds/installd/InstalldNativeService.cpp +++ b/cmds/installd/InstalldNativeService.cpp @@ -3391,7 +3391,7 @@ bool check_if_ioctl_feature_is_supported() { auto temp_path = StringPrintf("%smisc/installd/ioctl_check", android_data_dir.c_str()); if (access(temp_path.c_str(), F_OK) != 0) { open(temp_path.c_str(), O_CREAT | O_TRUNC | O_RDWR | O_CLOEXEC, 0644); - result = set_quota_project_id(temp_path, 0, true) == 0; + result = set_quota_project_id(temp_path, 0, false) == 0; // delete the temp file // remove the external file remove(temp_path.c_str()); diff --git a/cmds/installd/tests/installd_service_test.cpp b/cmds/installd/tests/installd_service_test.cpp index cf88856028..162e6680af 100644 --- a/cmds/installd/tests/installd_service_test.cpp +++ b/cmds/installd/tests/installd_service_test.cpp @@ -535,6 +535,22 @@ TEST_F(ServiceTest, GetAppSizeProjectID_UID) { if (!usingProjectIds) { service->setFirstBoot(); } + + if (access(using_project_ids.c_str(), F_OK) != 0) { + // projectids is not used, so check that ioctl features should be absent + auto temp_path = StringPrintf("%smisc/installd/ioctl_check", android_data_dir.c_str()); + + if (access(temp_path.c_str(), F_OK) != 0) { + open(temp_path.c_str(), O_CREAT | O_TRUNC | O_RDWR | O_CLOEXEC, 0644); + bool result = set_quota_project_id(temp_path, 0, false) == 0; + // delete the temp file + // remove the external file + remove(temp_path.c_str()); + // since using_project_ids file is not present, so ioctl settings should be absent + // that is denoted by the result of setting project id flag as false + ASSERT_FALSE(result); + } + } // call the getAppSize to get the current size of the external storage owning app service->getAppSize(std::nullopt, packageNames, 0, InstalldNativeService::FLAG_USE_QUOTA, externalStorageAppId, ceDataInodes, codePaths, &externalStorageSize); |