tree bb78a67882aa672a81ee503088df958e22a518b5
parent 6fe0203bc7e891782f796f0a9a6f6dd32089a5a5
author Tom Cherry <tomcherry@google.com> 1491000453 -0700
committer Tom Cherry <tomcherry@google.com> 1491262882 -0700

init: Use std::string for write_file()

The content parameter of write_file() previously took a char* that was
then converted to a std::string in WriteStringToFd().  One unfortunate
effect of this, is that it is impossible to write data that contains
'\0' within it, as the new string will only contain characters up
until the '\0'.

This changes write_file() to take an std::string, such that
std::string::size() is used to determine the length of the string,
allowing it to contain null characters.

Also change the path parameter of read_file() and write_file() for
consistency.

Lastly, add a test for handling strings with '\0' in them.

Bug: 36726045
Test: Boot bullhead, run unit tests
Change-Id: Idad60e4228ee2de741ab3ab6a4917065b5e63cd8
