Skip to content

Commit de2f08a

Browse files
committed
Replace libbase's ReadFileToString
with cuttlefish::ReadFileContents Bug: b/503015117
1 parent 3f6e5a1 commit de2f08a

15 files changed

Lines changed: 36 additions & 72 deletions

File tree

base/cvd/cuttlefish/common/libs/utils/proc_file_utils.cpp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626
#include <vector>
2727

2828
#include <android-base/file.h>
29-
#include "absl/strings/ascii.h"
30-
#include "absl/strings/strip.h"
31-
#include "absl/strings/str_split.h"
3229
#include <fmt/core.h>
3330
#include "absl/log/log.h"
31+
#include "absl/strings/ascii.h"
3432
#include "absl/strings/match.h"
3533
#include "absl/strings/numbers.h"
34+
#include "absl/strings/str_split.h"
35+
#include "absl/strings/strip.h"
3636

3737
#include "cuttlefish/common/libs/fs/shared_buf.h"
3838
#include "cuttlefish/common/libs/fs/shared_fd.h"
@@ -62,9 +62,7 @@ static Result<ProcStatusUids> OwnerUids(const pid_t pid) {
6262
// parse from /proc/<pid>/status
6363
std::regex uid_pattern(R"(Uid:\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+))");
6464
std::string status_path = fmt::format("/proc/{}/status", pid);
65-
std::string status_content;
66-
CF_EXPECT(android::base::ReadFileToString(status_path, &status_content,
67-
/* follow_symlinks */ true));
65+
std::string status_content = CF_EXPECT(ReadFileContents(status_path));
6866
std::vector<uid_t> uids;
6967
for (std::string_view line :
7068
absl::StrSplit(status_content, '\n', absl::SkipEmpty())) {
@@ -163,9 +161,7 @@ Result<std::string> GetExecutablePath(const pid_t pid) {
163161
static Result<void> CheckExecNameFromStatus(const std::string& exec_name,
164162
const pid_t pid) {
165163
std::string status_path = fmt::format("/proc/{}/status", pid);
166-
std::string status_content;
167-
CF_EXPECT(android::base::ReadFileToString(status_path, &status_content,
168-
/* follow_symlinks */ true));
164+
std::string status_content = CF_EXPECT(ReadFileContents(status_path));
169165
bool found = false;
170166
for (std::string_view line :
171167
absl::StrSplit(status_content, '\n', absl::SkipEmpty())) {
@@ -275,9 +271,7 @@ Result<pid_t> Ppid(const pid_t pid) {
275271
// parse from /proc/<pid>/status
276272
std::regex uid_pattern(R"(PPid:\s*([0-9]+))");
277273
std::string status_path = fmt::format("/proc/{}/status", pid);
278-
std::string status_content;
279-
CF_EXPECT(android::base::ReadFileToString(status_path, &status_content,
280-
/* follow_symlinks */ true));
274+
std::string status_content = CF_EXPECT(ReadFileContents(status_path));
281275
for (std::string_view line :
282276
absl::StrSplit(status_content, '\n', absl::SkipEmpty())) {
283277
std::smatch matches;

base/cvd/cuttlefish/host/commands/assemble_cvd/flags/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,6 @@ cf_cc_library(
260260
"//cuttlefish/host/commands/assemble_cvd:flags_defaults",
261261
"//cuttlefish/host/libs/config:config_utils",
262262
"//cuttlefish/result",
263-
"//libbase",
264263
"@abseil-cpp//absl/strings",
265264
"@gflags",
266265
"@jsoncpp",

base/cvd/cuttlefish/host/commands/assemble_cvd/flags/mcu_config_path.cc

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
#include <utility>
2222
#include <vector>
2323

24-
#include <android-base/file.h>
25-
#include <android-base/strings.h>
2624
#include "absl/strings/str_split.h"
2725
#include <gflags/gflags.h>
2826
#include <json/value.h>
@@ -38,8 +36,6 @@ DEFINE_string(mcu_config_path, CF_DEFAULTS_MCU_CONFIG_PATH,
3836

3937
namespace cuttlefish {
4038

41-
using android::base::ReadFileToString;
42-
4339
McuConfigPathFlag McuConfigPathFlag::FromGlobalGflags() {
4440
std::string default_path = DefaultHostArtifactsPath("etc/mcu_config.json");
4541
if (!CanAccess(default_path, R_OK)) {
@@ -77,10 +73,9 @@ Result<Json::Value> McuConfigPathFlag::JsonForIndex(
7773
}
7874
CF_EXPECT(FileExists(mcu_cfg_path), "MCU config file does not exist");
7975

80-
std::string content;
81-
CF_EXPECTF(ReadFileToString(mcu_cfg_path, &content,
82-
/* follow_symlinks */ true),
83-
"Failed to read mcu config file '{}'", mcu_cfg_path);
76+
std::string content =
77+
CF_EXPECTF(ReadFileContents(mcu_cfg_path),
78+
"Failed to read mcu config file '{}'", mcu_cfg_path);
8479

8580
return CF_EXPECTF(ParseJson(content), "Failed to parse '{}'", mcu_cfg_path);
8681
}

base/cvd/cuttlefish/host/commands/cvd/cli/parser/load_configs_parser.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,8 @@ Result<Json::Value> ParseJsonFile(const std::string& file_path) {
199199
CF_EXPECTF(FileExists(file_path),
200200
"Provided file \"{}\" to cvd command does not exist", file_path);
201201

202-
std::string file_content;
203-
using android::base::ReadFileToString;
204-
CF_EXPECTF(ReadFileToString(file_path.c_str(), &file_content,
205-
/* follow_symlinks */ true),
206-
"Failed to read file \"{}\"", file_path);
202+
std::string file_content = CF_EXPECTF(
203+
ReadFileContents(file_path), "Failed to read file \"{}\"", file_path);
207204
auto root = CF_EXPECTF(ParseJson(file_content),
208205
"Failed parsing file \"{}\" as JSON", file_path);
209206
return root;

base/cvd/cuttlefish/host/commands/cvd/fetch/substitute.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,8 @@ Result<void> SubstituteWithMarker(const std::string& target_dir,
122122
static constexpr std::string_view kSensorsSimulatorKeyword =
123123
"bin/sensors_simulator";
124124

125-
std::string content;
126-
CF_EXPECTF(android::base::ReadFileToString(marker_file, &content,
127-
/* follow_symlinks */ true),
128-
"failed to read '{}'", marker_file);
125+
std::string content = CF_EXPECTF(ReadFileContents(marker_file),
126+
"failed to read '{}'", marker_file);
129127
fetch::HostPkgMigrationConfig config;
130128
CF_EXPECT(google::protobuf::TextFormat::ParseFromString(content, &config),
131129
"failed parsing debian_substitution_marker file");

base/cvd/cuttlefish/host/commands/secure_env/storage/insecure_json_storage.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ namespace secure_env {
2929
namespace {
3030

3131
Result<Json::Value> ReadJson(const std::string& path) {
32-
std::string json;
33-
CF_EXPECT(
34-
android::base::ReadFileToString(path, &json, /* follow_symlinks */ true));
32+
std::string json = CF_EXPECT(ReadFileContents(path));
3533
return CF_EXPECT(ParseJson(json));
3634
}
3735

base/cvd/cuttlefish/host/libs/config/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ cf_cc_library(
3636
"//cuttlefish/host/libs/config:cuttlefish_config",
3737
"//cuttlefish/host/libs/feature",
3838
"//cuttlefish/result",
39-
"//libbase",
4039
"@abseil-cpp//absl/log",
4140
"@abseil-cpp//absl/strings",
4241
"@fmt",
@@ -95,7 +94,6 @@ cf_cc_library(
9594
"//cuttlefish/host/libs/config:cuttlefish_config",
9695
"//cuttlefish/host/libs/feature",
9796
"//cuttlefish/result",
98-
"//libbase",
9997
"@abseil-cpp//absl/log",
10098
"@abseil-cpp//absl/log:check",
10199
"@abseil-cpp//absl/strings",

base/cvd/cuttlefish/host/libs/config/build_archive.cc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
#include <string_view>
2828
#include <utility>
2929

30+
#include <android-base/file.h>
3031
#include "absl/strings/match.h"
3132
#include "absl/strings/str_cat.h"
3233
#include "absl/strings/strip.h"
33-
#include "android-base/file.h"
3434

3535
#include "cuttlefish/common/libs/utils/files.h"
3636
#include "cuttlefish/host/libs/config/fetcher_config.h"
@@ -157,11 +157,8 @@ Result<std::string> BuildArchive::MemberFilepath(
157157
Result<std::string> BuildArchive::MemberContents(std::string_view name) {
158158
CF_EXPECTF(members_.count(name), "'{}' not in archive", name);
159159
if (auto it = extracted_.find(name); it != extracted_.end()) {
160-
std::string contents;
161-
CF_EXPECTF(android::base::ReadFileToString(it->second, &contents,
162-
/* follow_symlinks */ true),
163-
"Failed to read '{}'", it->second);
164-
return contents;
160+
return CF_EXPECTF(ReadFileContents(it->second),
161+
"Failed to read '{}'", it->second);
165162
}
166163
CF_EXPECT(zip_file_.has_value(), "'{}' not extracted, no source archive");
167164

base/cvd/cuttlefish/host/libs/config/config_flag.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
#include <string>
2727
#include <string_view>
2828
#include <unordered_set>
29+
#include <utility>
2930
#include <vector>
3031

31-
#include <android-base/file.h>
3232
#include "absl/strings/strip.h"
3333
#include <fmt/ranges.h>
3434
#include <fruit/component.h>
@@ -51,7 +51,6 @@
5151
#include "cuttlefish/host/libs/feature/feature.h"
5252
#include "cuttlefish/result/result.h"
5353

54-
using android::base::ReadFileToString;
5554
using gflags::FlagSettingMode::SET_FLAGS_DEFAULT;
5655

5756
namespace cuttlefish {
@@ -77,10 +76,8 @@ class ConfigReader : public FlagFeature {
7776
Result<Json::Value> ReadConfig(const std::string& name) const {
7877
auto path =
7978
DefaultHostArtifactsPath("etc/cvd_config/cvd_config_" + name + ".json");
80-
std::string config_contents;
81-
CF_EXPECTF(
82-
ReadFileToString(path, &config_contents, /* follow_symlinks */ true),
83-
"Could not read config file \"{}\"", path);
79+
std::string config_contents = CF_EXPECTF(
80+
ReadFileContents(path), "Could not read config file \"{}\"", path);
8481
return CF_EXPECTF(ParseJson(config_contents),
8582
"Could not parse config file \"{}\"", path);
8683
}
@@ -194,11 +191,11 @@ class ConfigFlagImpl : public ConfigFlag {
194191
if (!FileExists(info_path)) {
195192
return {};
196193
}
197-
std::string android_info;
198-
if (!ReadFileToString(info_path, &android_info,
199-
/* follow_symlinks */ true)) {
194+
Result<std::string> android_info_result = ReadFileContents(info_path);
195+
if (!android_info_result.ok()) {
200196
return {};
201197
}
198+
std::string android_info = std::move(*android_info_result);
202199
Result<std::map<std::string, std::string, std::less<void>>> parsed_config =
203200
ParseKeyEqualsValue(android_info);
204201
if (!parsed_config.ok()) {

base/cvd/cuttlefish/host/libs/config/custom_actions.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include <utility>
2323
#include <vector>
2424

25-
#include <android-base/file.h>
2625
#include <fruit/component.h>
2726
#include <fruit/fruit_forward_decls.h>
2827
#include <fruit/macro.h>
@@ -343,9 +342,7 @@ class CustomActionConfigImpl : public CustomActionConfigProvider {
343342
}
344343
for (const auto& config : custom_action_config_) {
345344
if (!config.empty()) {
346-
std::string config_contents;
347-
CF_EXPECT(android::base::ReadFileToString(config, &config_contents,
348-
/* follow_symlinks */ true));
345+
std::string config_contents = CF_EXPECT(ReadFileContents(config));
349346
auto custom_action_array = CF_EXPECT(ParseJson(config_contents));
350347
CF_EXPECTF(AddJsonCustomActionConfigs(custom_action_array),
351348
"Failed to parse config at \"{}\"", config);

0 commit comments

Comments
 (0)