applypatch: Fix the bug when constructing VAL_BLOB.

When constructing std::string from C-string, the string may be truncated
at null char. Use range constructor instead.

Bug: 32380016
Test: Use applypatch to install a previously failed recovery image.
Change-Id: Id3e2afb4a810594243cd21db526933d1fea5044b
diff --git a/applypatch/main.cpp b/applypatch/main.cpp
index a3a45d0..294f7ee 100644
--- a/applypatch/main.cpp
+++ b/applypatch/main.cpp
@@ -99,7 +99,7 @@
             return 1;
         }
         bonus.type = VAL_BLOB;
-        bonus.data = reinterpret_cast<const char*>(bonusFc.data.data());
+        bonus.data = std::string(bonusFc.data.cbegin(), bonusFc.data.cend());
         argc -= 2;
         argv += 2;
     }
@@ -132,7 +132,8 @@
     std::vector<Value> patches;
     std::vector<Value*> patch_ptrs;
     for (size_t i = 0; i < files.size(); ++i) {
-        patches.push_back(Value(VAL_BLOB, reinterpret_cast<const char*>(files[i].data.data())));
+        patches.push_back(Value(VAL_BLOB,
+                                std::string(files[i].data.cbegin(), files[i].data.cend())));
         patch_ptrs.push_back(&patches[i]);
     }
     return applypatch(argv[1], argv[2], argv[3], target_size,