diff options
author | 2012-02-06 13:47:09 -0600 | |
---|---|---|
committer | 2012-02-06 13:47:09 -0600 | |
commit | 3532684e2f4c8a4e9086365adcda4079d20f0a92 (patch) | |
tree | aa8d8c126fbbc00dedd0bf4a4de5529601d4fb7f | |
parent | 72f625baa51d5cf41c24d96586535f5720e240e4 (diff) | |
download | pseudo-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.txt | 4 | ||||
-rw-r--r-- | ports/linux/guts/__openat64_2.c | 4 | ||||
-rw-r--r-- | ports/linux/guts/open64.c | 4 | ||||
-rw-r--r-- | ports/linux/guts/openat64.c | 4 |
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; * } |