libcutils: fs_config must use O_BINARY

Bug: 19908228
Change-Id: I3273cf99b320941f9530a015c9e582af72469acb
diff --git a/libcutils/fs_config.c b/libcutils/fs_config.c
index 171bf29..9f8023e 100644
--- a/libcutils/fs_config.c
+++ b/libcutils/fs_config.c
@@ -37,6 +37,10 @@
 #include <private/android_filesystem_config.h>
 #include <utils/Compat.h>
 
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
 /* The following structure is stored little endian */
 struct fs_path_config_from_file {
     uint16_t len;
@@ -154,12 +158,12 @@
         char *name = NULL;
         asprintf(&name, "%s%s", out, dir ? conf_dir : conf_file);
         if (name) {
-            fd = TEMP_FAILURE_RETRY(open(name, O_RDONLY));
+            fd = TEMP_FAILURE_RETRY(open(name, O_RDONLY | O_BINARY));
             free(name);
         }
     }
     if (fd < 0) {
-        fd = TEMP_FAILURE_RETRY(open(dir ? conf_dir : conf_file, O_RDONLY));
+        fd = TEMP_FAILURE_RETRY(open(dir ? conf_dir : conf_file, O_RDONLY | O_BINARY));
     }
     return fd;
 }