Fix infamous 0d0a bug on Windows by not opening file binary.
Rationale:
On Windows, writing out 0a really writes out 0d0a in text mode.
Thus, the file should be opened in binary. On Linux, this is
a nop (in fact O_BINARY does not exist).
BUG=28385192
(cherry picked from commit 21a1b4488ba22eaabea941741c455cd6aa44b782)
Change-Id: I906c610fdb2f43b1ef95eff2533a06af85de0850
diff --git a/libdex/CmdUtils.cpp b/libdex/CmdUtils.cpp
index cdb7bb9..8244a11 100644
--- a/libdex/CmdUtils.cpp
+++ b/libdex/CmdUtils.cpp
@@ -54,7 +54,7 @@
goto bail;
}
- fd = open(outFileName, O_RDWR | O_CREAT | O_EXCL, 0600);
+ fd = open(outFileName, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
if (fd < 0) {
fprintf(stderr, "Unable to create output file '%s': %s\n",
outFileName, strerror(errno));