aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Seebach <peter.seebach@windriver.com>2012-02-06 13:47:09 -0600
committerPeter Seebach <peter.seebach@windriver.com>2012-02-06 13:47:09 -0600
commit3532684e2f4c8a4e9086365adcda4079d20f0a92 (patch)
treeaa8d8c126fbbc00dedd0bf4a4de5529601d4fb7f
parent72f625baa51d5cf41c24d96586535f5720e240e4 (diff)
downloadpseudo-WRLINUX_4_3.tar.gz
pseudo-WRLINUX_4_3.tar.bz2
pseudo-WRLINUX_4_3.zip
The O_LARGEFILE value was getting merged into mode (where it wasWRLINUX_4_3
ignored) rather than flags (where it was needed), meaning that the open64 type functions didn't work as intended on 32-bit hosts. Conflicts: ChangeLog.txt (Merged from master branch.)
-rw-r--r--ChangeLog.txt4
-rw-r--r--ports/linux/guts/__openat64_2.c4
-rw-r--r--ports/linux/guts/open64.c4
-rw-r--r--ports/linux/guts/openat64.c4
4 files changed, 10 insertions, 6 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index fec5955..f720d55 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,7 @@
+2012-02-06:
+ * (seebs) Merge O_LARGEFILE into flags, not mode (thanks to Lei
+ Liu at Wind River for the fix).
+
2011-05-31:
* (seebs) Don't mask in 0100 to filesystem modes for things which
are not actually directories, because this breaks the special
diff --git a/ports/linux/guts/__openat64_2.c b/ports/linux/guts/__openat64_2.c
index 8772115..e970df7 100644
--- a/ports/linux/guts/__openat64_2.c
+++ b/ports/linux/guts/__openat64_2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2010 Wind River Systems; see
+ * Copyright (c) 2008-2010,2012 Wind River Systems; see
* guts/COPYRIGHT for information.
*
* static int
@@ -7,7 +7,7 @@
* int rc = -1;
*/
- rc = wrap_openat(dirfd, path, flags, O_LARGEFILE);
+ rc = wrap_openat(dirfd, path, flags | O_LARGEFILE, 0);
/* return rc;
* }
diff --git a/ports/linux/guts/open64.c b/ports/linux/guts/open64.c
index adeb885..8028ede 100644
--- a/ports/linux/guts/open64.c
+++ b/ports/linux/guts/open64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2010 Wind River Systems; see
+ * Copyright (c) 2008-2010,2012 Wind River Systems; see
* guts/COPYRIGHT for information.
*
* static int
@@ -7,7 +7,7 @@
* int rc = -1;
*/
- rc = wrap_openat(AT_FDCWD, path, flags, mode | O_LARGEFILE);
+ rc = wrap_openat(AT_FDCWD, path, flags | O_LARGEFILE, mode);
/* return rc;
* }
diff --git a/ports/linux/guts/openat64.c b/ports/linux/guts/openat64.c
index 726ec6d..8dedcbf 100644
--- a/ports/linux/guts/openat64.c
+++ b/ports/linux/guts/openat64.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2010 Wind River Systems; see
+ * Copyright (c) 2008-2010,2012 Wind River Systems; see
* guts/COPYRIGHT for information.
*
* static int
@@ -7,7 +7,7 @@
* int rc = -1;
*/
- rc = wrap_openat(dirfd, path, flags, mode | O_LARGEFILE);
+ rc = wrap_openat(dirfd, path, flags | O_LARGEFILE, mode);
/* return rc;
* }