[feedback] Decode a std::string instead of a VMO

* Initially we had chosen a VMO to avoid copying data between std::string and std::vector depending on what an encoding algorithm might need. However encoding algorithms usually take a char array as input and std::string can provide this. Furthermore std::string can support any char value such as '\0'.

TESTED=`crasher` (report ID a488e5b4f920229a)

Bug: 51563

Change-Id: I06a2eff4b079807dfe20ddecdac7c49684a54be4
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/404915
Commit-Queue: Daniel Salazar Villarreal <villarreald@google.com>
Reviewed-by: Francois Rousseau <frousseau@google.com>
Testability-Review: Francois Rousseau <frousseau@google.com>
diff --git a/src/developer/forensics/feedback_data/system_log_recorder/encoding/BUILD.gn b/src/developer/forensics/feedback_data/system_log_recorder/encoding/BUILD.gn
index 2029066..73d6763 100644
--- a/src/developer/forensics/feedback_data/system_log_recorder/encoding/BUILD.gn
+++ b/src/developer/forensics/feedback_data/system_log_recorder/encoding/BUILD.gn
@@ -7,8 +7,6 @@
 ###############################################################################
 source_set("decoder") {
   sources = [ "decoder.h" ]
-
-  public_deps = [ "//src/lib/fsl" ]
 }
 
 source_set("encoder") {
@@ -16,10 +14,7 @@
 }
 
 source_set("identity_decoder") {
-  sources = [
-    "identity_decoder.cc",
-    "identity_decoder.h",
-  ]
+  sources = [ "identity_decoder.h" ]
 
   deps = [ ":decoder" ]
 }
diff --git a/src/developer/forensics/feedback_data/system_log_recorder/encoding/decoder.h b/src/developer/forensics/feedback_data/system_log_recorder/encoding/decoder.h
index b34d017..9de054b 100644
--- a/src/developer/forensics/feedback_data/system_log_recorder/encoding/decoder.h
+++ b/src/developer/forensics/feedback_data/system_log_recorder/encoding/decoder.h
@@ -7,8 +7,6 @@
 
 #include <string>
 
-#include "src/lib/fsl/vmo/sized_vmo.h"
-
 namespace forensics {
 namespace feedback_data {
 namespace system_log_recorder {
@@ -20,7 +18,7 @@
  public:
   virtual ~Decoder(){};
 
-  virtual std::string Decode(const fsl::SizedVmo& block) = 0;
+  virtual std::string Decode(const std::string& block) = 0;
 };
 
 }  // namespace system_log_recorder
diff --git a/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.cc b/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.cc
deleted file mode 100644
index c796395..0000000
--- a/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2020 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.h"
-
-#include "src/lib/fsl/vmo/strings.h"
-
-namespace forensics {
-namespace feedback_data {
-namespace system_log_recorder {
-
-std::string IdentityDecoder::Decode(const fsl::SizedVmo& vmo) {
-  std::string output;
-  fsl::StringFromVmo(vmo, &output);
-  return output;
-}
-
-}  // namespace system_log_recorder
-}  // namespace feedback_data
-}  // namespace forensics
diff --git a/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.h b/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.h
index f96f28e..e6e4812 100644
--- a/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.h
+++ b/src/developer/forensics/feedback_data/system_log_recorder/encoding/identity_decoder.h
@@ -20,7 +20,7 @@
   virtual ~IdentityDecoder(){};
 
   // |Decoder|
-  virtual std::string Decode(const fsl::SizedVmo& vmo);
+  virtual std::string Decode(const std::string& block) { return block; }
 };
 
 }  // namespace system_log_recorder
diff --git a/src/developer/forensics/feedback_data/system_log_recorder/reader.cc b/src/developer/forensics/feedback_data/system_log_recorder/reader.cc
index d5ad40b..4c91ee0 100644
--- a/src/developer/forensics/feedback_data/system_log_recorder/reader.cc
+++ b/src/developer/forensics/feedback_data/system_log_recorder/reader.cc
@@ -10,9 +10,9 @@
 #include <fstream>
 #include <regex>
 #include <sstream>
+#include <string>
 
 #include "src/lib/files/file.h"
-#include "src/lib/fsl/vmo/file.h"
 #include "src/lib/fxl/strings/split_string.h"
 
 namespace forensics {
@@ -96,9 +96,12 @@
 
   std::string log;
   for (auto path = input_file_paths.crbegin(); path != input_file_paths.crend(); ++path) {
-    fsl::SizedVmo vmo;
-    fsl::VmoFromFilename(*path, &vmo);
-    log += decoder->Decode(vmo);
+    std::string block;
+    if (!files::ReadFileToString(*path, &block)) {
+      continue;
+    }
+
+    log += decoder->Decode(block);
   }
 
   if (log.empty()) {