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
This commit is contained in:
parent
fd796317c3
commit
edf1b15fef
1 changed files with 3 additions and 2 deletions
|
@ -99,7 +99,7 @@ static int PatchMode(int argc, char** argv) {
|
|||
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 @@ static int PatchMode(int argc, char** argv) {
|
|||
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,
|
||||
|
|
Loading…
Reference in a new issue