summaryrefslogtreecommitdiffstats
path: root/bootloader_message/bootloader_message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader_message/bootloader_message.cpp')
-rw-r--r--bootloader_message/bootloader_message.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp
index 4d1ce5bb4..449f40e11 100644
--- a/bootloader_message/bootloader_message.cpp
+++ b/bootloader_message/bootloader_message.cpp
@@ -159,7 +159,10 @@ static bool write_misc_partition(const void* p, size_t size, size_t offset, std:
*err = "no misc device set";
return false;
}
- int fd = (open(misc_blk_device.c_str(), O_WRONLY | O_SYNC));
+ int open_flags = O_WRONLY | O_SYNC;
+ if (offset > 0)
+ open_flags = O_RDWR | O_APPEND | O_SYNC;
+ int fd = (open(misc_blk_device.c_str(), open_flags));
if (fd == -1) {
*err = "failed to open " + misc_blk_device + ": ";
*err += strerror(errno);