Use span-based file API in inspect_utils_linux.cc

No functionality change.

Bug: 435317390
Change-Id: I133a61d17ea1aa86874b77f67ce30452965dc63e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7212363
Commit-Queue: Lei Zhang <[email protected]>
Auto-Submit: Jan Keitel <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1552946}
NOKEYCHECK=True
GitOrigin-RevId: 4f69e2c14be55c4f603bd87996aa1ee6319d4234
diff --git a/partition_allocator/inspect_utils_linux.cc b/partition_allocator/inspect_utils_linux.cc
index 6977591..3c9a046 100644
--- a/partition_allocator/inspect_utils_linux.cc
+++ b/partition_allocator/inspect_utils_linux.cc
@@ -6,11 +6,16 @@
 
 #include <sys/mman.h>
 
+#include <optional>
+#include <string_view>
+#include <vector>
+
 #include "base/check_op.h"
 #include "base/debug/proc_maps_linux.h"
 #include "base/logging.h"
 #include "base/memory/page_size.h"
 #include "base/posix/eintr_wrapper.h"
+#include "base/strings/string_view_util.h"
 #include "base/strings/stringprintf.h"
 #include "partition_alloc/thread_cache.h"
 
@@ -69,15 +74,12 @@
                            base::File::FLAG_OPEN | base::File::FLAG_READ);
     CHECK(file.IsValid());
     constexpr size_t kMaxFileSize = 10 * (1 << 20);
-    std::vector<char> data(kMaxFileSize);
-    int bytes_read =
-        file.ReadAtCurrentPos(&data[0], static_cast<int>(data.size()) - 1);
-    CHECK_GT(bytes_read, 0) << "Cannot read " << path;
-    data[bytes_read] = '\0';
-    std::string proc_maps(&data[0]);
+    std::vector<uint8_t> data(kMaxFileSize);
+    const std::optional<size_t> bytes_read = file.ReadAtCurrentPos(data);
+    CHECK_GT(bytes_read.value_or(0), 0u) << "Cannot read " << path;
 
     LOG(INFO) << "Parsing the maps";
-    CHECK(base::debug::ParseProcMaps(proc_maps, &regions));
+    CHECK(base::debug::ParseProcMaps(base::as_string_view(data), &regions));
     LOG(INFO) << "Found " << regions.size() << " regions";
   }