diff options
author | Tao Bao <tbao@google.com> | 2016-12-09 23:33:48 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-12-09 23:33:49 +0100 |
commit | f28afc191da4ef9512ac16aae1734142dd5adfc9 (patch) | |
tree | f3582f786a6fa82993eed0760bc489c740d93497 /bootloader_message | |
parent | Merge "recovery: Fix the argument parsing from COMMAND_FILE." (diff) | |
parent | write_bootloader_message(<options>) should not reset stage field. (diff) | |
download | android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar.gz android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar.bz2 android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar.lz android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar.xz android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.tar.zst android_bootable_recovery-f28afc191da4ef9512ac16aae1734142dd5adfc9.zip |
Diffstat (limited to 'bootloader_message')
-rw-r--r-- | bootloader_message/bootloader_message.cpp | 8 | ||||
-rw-r--r-- | bootloader_message/include/bootloader_message/bootloader_message.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index 9a5671843..294b1725d 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -164,7 +164,13 @@ bool clear_bootloader_message(std::string* err) { } bool write_bootloader_message(const std::vector<std::string>& options, std::string* err) { - bootloader_message boot = {}; + bootloader_message boot; + if (!read_bootloader_message(&boot, err)) { + return false; + } + // Zero out the entire fields. + memset(boot.command, 0, sizeof(boot.command)); + memset(boot.recovery, 0, sizeof(boot.recovery)); strlcpy(boot.command, "boot-recovery", sizeof(boot.command)); strlcpy(boot.recovery, "recovery\n", sizeof(boot.recovery)); for (const auto& s : options) { diff --git a/bootloader_message/include/bootloader_message/bootloader_message.h b/bootloader_message/include/bootloader_message/bootloader_message.h index b3d2182df..437189e32 100644 --- a/bootloader_message/include/bootloader_message/bootloader_message.h +++ b/bootloader_message/include/bootloader_message/bootloader_message.h @@ -193,7 +193,8 @@ bool write_bootloader_message(const bootloader_message& boot, std::string* err); bool write_bootloader_message_to(const bootloader_message& boot, const std::string& misc_blk_device, std::string* err); -// Write bootloader message (boots into recovery with the options) to BCB. +// Write bootloader message (boots into recovery with the options) to BCB. Will +// set command and recovery fields only. bool write_bootloader_message(const std::vector<std::string>& options, std::string* err); // Clear BCB. |