fix some liblp file access for win32
The file accessing API in liblp don't work on win32. Add the O_BINARY to correct the file stream access. This patch follow the AOSP change 829979. Change-Id: I97180e2f07cacf109a86593b6a12975597552053 Signed-off-by: Haoran.Wang <elven.wang@nxp.com>
This commit is contained in:
parent
e5e921b20a
commit
f7d1a07952
1 changed files with 4 additions and 4 deletions
|
|
@ -124,7 +124,7 @@ bool WriteToImageFile(borrowed_fd fd, const LpMetadata& input) {
|
|||
}
|
||||
|
||||
bool WriteToImageFile(const std::string& file, const LpMetadata& input) {
|
||||
unique_fd fd(open(file.c_str(), O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC, 0644));
|
||||
unique_fd fd(open(file.c_str(), O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC | O_BINARY, 0644));
|
||||
if (fd < 0) {
|
||||
PERROR << __PRETTY_FUNCTION__ << " open failed: " << file;
|
||||
return false;
|
||||
|
|
@ -184,7 +184,7 @@ bool ImageBuilder::IsValid() const {
|
|||
}
|
||||
|
||||
bool ImageBuilder::Export(const std::string& file) {
|
||||
unique_fd fd(open(file.c_str(), O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC, 0644));
|
||||
unique_fd fd(open(file.c_str(), O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC | O_BINARY, 0644));
|
||||
if (fd < 0) {
|
||||
PERROR << "open failed: " << file;
|
||||
return false;
|
||||
|
|
@ -208,7 +208,7 @@ bool ImageBuilder::ExportFiles(const std::string& output_dir) {
|
|||
std::string file_name = "super_" + name + ".img";
|
||||
std::string file_path = output_dir + "/" + file_name;
|
||||
|
||||
static const int kOpenFlags = O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC | O_NOFOLLOW;
|
||||
static const int kOpenFlags = O_CREAT | O_RDWR | O_TRUNC | O_CLOEXEC | O_NOFOLLOW | O_BINARY;
|
||||
unique_fd fd(open(file_path.c_str(), kOpenFlags, 0644));
|
||||
if (fd < 0) {
|
||||
PERROR << "open failed: " << file_path;
|
||||
|
|
@ -443,7 +443,7 @@ bool ImageBuilder::CheckExtentOrdering() {
|
|||
}
|
||||
|
||||
int ImageBuilder::OpenImageFile(const std::string& file) {
|
||||
android::base::unique_fd source_fd = GetControlFileOrOpen(file.c_str(), O_RDONLY | O_CLOEXEC);
|
||||
unique_fd source_fd = GetControlFileOrOpen(file.c_str(), O_RDONLY | O_CLOEXEC | O_BINARY);
|
||||
if (source_fd < 0) {
|
||||
PERROR << "open image file failed: " << file;
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue